Bất kỳ ai biết cách tôi có thể đặt giá trị mặc định cho giá trị trung bình? Tôi có một dòng như thế này ...Phương pháp mở rộng trung bình trong LINQ cho giá trị mặc định
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();
mà ném một lỗi vì tôi chưa có xếp hạng. Nếu tôi không có tôi muốn trung bình để mặc định 0. Tôi đã suy nghĩ này nên là một phương pháp mở rộng, nơi tôi có thể xác định những gì giá trị mặc định nên được.
Tôi không nghĩ đây là một ý tưởng hay. Giả sử bạn có một 'List ' và 'A' là một lớp có thuộc tính' int' 'Num'. Bạn cần viết mã như 'listofA.DefaultItEmpty (defaultA) .Average (a => a.Num)'. Bạn cần phải xây dựng một 'defaultA' ở đây. –
@DannyChen: Không đúng: 'listofA.Select (a => a.Num) .DefaultIfEmpty (0) .Average()'. – Jon
@Jon: Nhưng bạn đã quay lại bắt đầu ngay bây giờ, 'x.DbRatings' có thể rỗng ở đây. 'p.DbVersions.Select (x => x.DbRatings) .DefaultIfEmpty (defaultRatings)', bạn cần phải xác định 'defaultRatings', nó không đơn giản là một số. –