我试图根据列的总和以及有多少列来计算平均值.
每部电影都可以有一个电影,我试图将电影放在一起,然后将它们除以收视率以获得电影的平均评分.
(reviews.Where(w => w.MovieID == m.MovieID).Sum(o => o.MovieRating)) / reviews.Where(z => z.MovieID == m.MovieID).Count();
Run Code Online (Sandbox Code Playgroud)
但问题是,如果计数为0.我能做些什么呢?
如何使用LINQ内置Average
函数?
reviews
.Where(z => z.MovieID == m.MovieID)
.Select(z => z.MovieRating)
.DefaultIfEmpty(0)
.Average()
Run Code Online (Sandbox Code Playgroud)
让查询在服务器上完全运行(我猜,在您的数据库服务器上):
reviews
.Where(z => z.MovieID == m.MovieID)
.Average(z => (decimal?)z.MovieRating) ?? 0
Run Code Online (Sandbox Code Playgroud)
你可以用
var ratingList = reviews
.Where(z => z.MovieID == m.MovieID)
.Select(z => z.MovieRating)
.ToList();
if(ratingList.Count > 0)
{
double result = ratingList.Sum() / ratingList.Count;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
372 次 |
最近记录: |