0

私は2つのリストを持っていると言わないでください

リスト1:

「トム」、「フランク」、「レイシー」

リスト2:

「フランク」、「トム」

トムとフランが繰り返されていることを示すために必要なクエリは何でしょうか?

私が比較しようとしているリストは非常に大きく、次のようなことをした場合:

 var q = from a in List1
         from b in List2
         where a.Name == b.Name
         select a;

これには長い時間がかかります。

4

3 に答える 3

4

リスト間で重複している値を確認するには、次を使用できます

var results = list1.Intersect(list2);

アイテムを一致させ、それぞれで何かをすることに興味がある場合は、次を使用できますJoin

var results = from item1 in list1 
              join item2 in list2 
              on item1 equals item2 
              select new 
              {
                  // include what you want here
              };

あなたの場合、文字列のリストを扱っているのでIntersect、適切な行動方針のようです。共通キーで一致するオブジェクトのリストを扱っている場合は、リストを結合して結果を射影することを選択できます。

于 2011-05-26T17:52:20.867 に答える
3

Intersectを使用する必要があります:

var items = List1.Intersect(List2); // Tom, Frank
于 2011-05-26T17:51:50.137 に答える
3

交差を使用できます:

List<string> list3 = list1.Intersect(list2).ToList();
于 2011-05-26T17:51:56.363 に答える