1

各オブジェクトに内部オブジェクトリストが含まれているオブジェクトリストがあり、フェッチするのは父親リスト(左側のリスト)ですが、SelectMany関数を使用する必要があります。それは可能ですか?

素朴な例:

var query = objList.SelectMany(p => p.InternalList)
                   .Where(internalObj => internalObj.SomeProprerty == true)
                   .SELECT(objList);

これを達成する方法はありますか?

4

1 に答える 1

3

実際には が必要objListではなく、その時点で見ている要素が必要であると仮定すると、次のことが必要objListになると思います。

var query = objList.SelectMany(p => p.InternalList, (o, p) => new { o, p })
                   .Where(pair => pair.p.SomeProperty)
                   .Select(pair => pair.o);

それがあなたの求めているものではない場合、具体的な例を挙げていただけると本当に助かります。

編集:内部リストの任意の要素の値がの例のみが必要場合は、次のように簡単に実行できます。objListSomePropertytrue

var value = objList.FirstOrDefault(o => o.InternalList.Any(p => p.SomeProperty));
if (value != null)
{
    ...
}
于 2012-08-13T16:07:51.423 に答える