有人知道我如何为平均值设置默认值吗?我有一行代码像这样...
dbPlugins = (from p in dbPlugins
select new { Plugin = p, AvgScore = p.DbVersions.Average(x => x.DbRatings.Average(y => y.Score)) })
.OrderByDescending(x => x.AvgScore)
.Select(x => x.Plugin).ToList();
由于我还没有评分,所以出现错误。如果我没有评分,我希望平均值默认为0。我想这应该是一个扩展方法,我可以在其中指定默认值。
List<A>
,其中A
是一个带有int
属性Num
的类。你需要编写像listofA.DefaultItEmpty(defaultA).Average(a => a.Num)
这样的代码。你需要在这里构造一个defaultA
。 - Cheng ChenlistofA.Select(a => a.Num).DefaultIfEmpty(0).Average()
。 - Jonx.DbRatings
可能为空。p.DbVersions.Select(x => x.DbRatings).DefaultIfEmpty(defaultRatings)
,你需要指定defaultRatings
,它不仅仅是一个数字。 - Cheng Chenx.DbRatings
可以是null
?我肯定希望它是一个空的IQueryable<DbRating>
而不是null
。 - JonInvalidOperationException
。请阅读文档:http://msdn.microsoft.com/zh-cn/library/bb354760.aspx - Jon