2

オブジェクトのコレクションが 2 つある場合、1 つのクエリでそれらを効果的に結合し、両方から選択することはできますか?

例えば:

var collection1 = GetSomeData();
var collection2 = GetSomeMoreData();

var myResult = from x in collection1
               from y in collection2
               where x.SomeProperty = "Yes"
               where y.SomeProperty = "Yes"
               select x, select y;

GetSomeDataGetSomeMoreData両方が返されますIEnumerable<MyType>

明らかにこれはコンパイルされません...しかし、うまくいけば、私がアイデアをやろうとしていることを説明することができます...

4

1 に答える 1

8

私はあなたが欲しいと思いますEnumerable.Concat

var myResult = collection1.Concat(collection2)
                          .Where(x => x.SomeProperty == "Yes");

またはクエリ構文で:

var myResult = from x in collection1.Concat(collection2)
               where x.SomeProperty == "Yes"
               select x;

LINQ のコンテキストで使用する「結合」という言葉は、通常、いくつかのキーに基づいて 2 つのシーケンス間の共通要素を見つける (およびペアリング/グループ化する) ことを指すことに注意してください。それはあなたが意図していることではありませんよね?

于 2012-09-17T15:09:33.420 に答える