1

IList<Foo>のようなデータセットを使用すると、次のようになります。

ID   CHILD  PARENT TYPE  
1   102    101    UPSELL  
1   103    101    UPSELL  
2   102    101    BONUS  
2   104    103    BONUS  
3   102    101    BONUS  
4   102    101    PRODUCT  
4   104    102    PRODUCT  

LINQを使用して、同じIDを持つ親を持つ子を見つけるにはどうすればよいですか?

必要な出力は

ID   CHILD  PARENT TYPE 
4   102    101    PRODUCT
4

1 に答える 1

3

これがあなたが探しているものだと思います。最初に ID でグループ化したので、各グループを個別に処理できましたが、おそらくそれを 1 つのクエリに結合する方法があります。

var grouping = foos.GroupBy(f => f.ID);
foreach(var g in grouping)
{
    var result = (from f1 in g from f2 in g where f1.Child == f2.Parent select f1);
    if( result.Any())
    {
        // you have your answer
    }
}
于 2010-04-28T21:45:15.490 に答える