Linq列表的平均值及其所有嵌套列表值

时间:2018-04-24 18:42:23

标签: c# linq

我有List<A>。每个A都有一个List<B>,其中B有一个int x。我想为所有x计算A的平均值。

我试过了:

@Model.AList.ForEach(a => a.BList.Average(b => b.x))

这抱怨错过了返回值。我尝试过类似的东西:

@Model.Alist.ForEach(a =>
{
    return a.Blist.Average(b => b.x);
})

但这是不正确的语法,因为ForEach期望void返回。

如何在LINQ查询中计算所有x的{​​{1}}的平均值?

2 个答案:

答案 0 :(得分:7)

首先压扁收藏品,然后取平均值。像这样:

@Model.AList.SelectMany(a => a.BList).Average(b => b.x)

答案 1 :(得分:1)

我不确定你是否想要每个BList的不同平均值,所以这就是解决方案:

@Model.AList.Select(a => a.BList.Average(b => b.x))