簡體   English   中英

查看兩個列表中匹配的項目

[英]See items that match in two list

免得說我有兩個清單

清單 1:

“湯姆”、“弗蘭克”、“萊西”

清單 2:

“弗蘭克”、“湯姆”

顯示 Tom 和 Fran 被重復需要的查詢是什么?

我要比較的列表非常大,如果我執行以下操作:

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

這需要很長時間。

要查看哪些值在列表中重復,您可以使用

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似乎是適當的行動方案。 如果您正在處理公共鍵上的對象匹配列表,您可能會選擇加入列表並投影結果。

您應該使用Intersect

var items = List1.Intersect(List2); // Tom, Frank

您可以使用intersect

List<string> list3 = list1.Intersect(list2).ToList();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM