3

LINQ を使用してクエリを実行しようとしているリストがあります。T 型には List < U > というプロパティがあります。List < T > の List < U > プロパティをクエリして、List プロパティの項目が、フィルタリング用に作成した別の List < U > の項目と一致するオブジェクトのみを取得しようとしています。私のコードは次のようになります。

class T {
   List<U> Names;
}

class U {

}

//then I want to query a List of T by interrogating which T objects' Names property has the same items that I have a List < U > that I have created.

List<U> searchTermItems;
List<T> allObjects;

//Query allObjects and find out which objects' Name property items match the items in the searchTermItems list
4

1 に答える 1

6

使用できますEnumerable.Intersect

var filtered = allObjects.Intersect(searchTermItems);

単一のリストではなくリストのコレクションを操作しているため、目的の出力を得るには、次のものEnumerable.Whereと組み合わせて使用​​する必要がありEnumerable.Intersectます。

var filtered = allObjects.Where(x => x.Names.Intersect(searchTermItems).Any());
于 2013-05-15T01:35:22.497 に答える