Linq2Sql:已加入列的总和

时间:2012-01-15 22:39:11

标签: c# linq-to-sql lambda

我需要在连接到我所拥有的列表的对象列表的列中汇总值。 例如,我有A和B类,B有一个我想要求和的值:

class A
{
     //props
}

class B
{
    //props
    decimal ValToSum { get; set; }
}

A与B有关系,因此每个A可以连接多个B.

我的数据上下文中有一个As列表:

IEnumerable<A> myList;
// obtain myList from DataContext

现在我想要将A的连接产生的每个B的ValToSum属性加起来。

类似的东西:

myList.Bs.Sum(x => x.ValToSum);

如何访问myList中与As相关的所有B的列表?

3 个答案:

答案 0 :(得分:2)


var sum = myList.SelectMany(i => i.Bs).Sum(i => i.ValToSum);

答案 1 :(得分:2)

使用SelectMany将序列展平为一个,而不是使用Sum

myList.SelectMany(x => x.Bs).Sum(x => x.ValToSum);

答案 2 :(得分:0)

var sum = myList.Bs.Select(x => x.ValToSum).Sum();