任何人都知道我可以如何設置平均值的默認值?我有這樣一條線...Linq默認值的平均擴展方法
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'是一個具有'int'屬性'Num'的類。你需要編寫像'listofA.DefaultItEmpty(defaultA).Average(a => a.Num)'這樣的代碼。你需要在這裏構造一個'defaultA'。 – 2011-03-29 02:17:16
@DannyChen:不正確:'listofA.Select(a => a.Num).DefaultIfEmpty(0).Average()'。 – Jon 2011-03-29 02:22:14
@Jon:但是現在你又回到了開始,'x.DbRatings'在這裏可以爲null。 'p.DbVersions.Select(x => x.DbRatings).DefaultIfEmpty(defaultRatings)',你需要指定'defaultRatings',它不僅僅是一個數字。 – 2011-03-29 02:26:42