2012-01-15 13 views
0

私は持っているリストに結合されたオブジェクトのリストの列の値を合計する必要があります。 は例えば、私は、クラスAとBがあり、Bは私が合計したい値があります。各Aは、多くのBsが参加していることができるようにLinq2Sql:結合された列の合計

class A 
{ 
    //props 
} 

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

AはBとの関係を持っています。

そして私は私のデータコンテキストからのAsのリストを持っている:

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

今、私のようなA.

に参加する何かから生じたすべてのBのValToSum性質合計する:

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

myListのAsに関連するすべてのBsのリストにアクセスするにはどうすればよいですか?

答えて

2

使用SelectMany 1と私ははmyListでのBsコレクションを持っていないSum

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

完璧に作業しました。 –

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

を使用するよりもにsequancesを平坦化します。私はAでBsコレクションを持っています(例えばA.Bs)。 –

2

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

完璧に作業しました。 upvoted、しかしマークされていないのは、Magnusからの他の正解(より速く、より多くのコメント)のためです。ありがとう! –

関連する問題