我有兩個字符串列表。如何獲取它們之間的不同值列表或從第一個列表中刪除第二個列表元素?獲取C#中兩個列表之間的清單列表
List<string> list1 = { "see","you","live"}
List<string> list2 = { "see"}
結果應該是{"you","live"}
。
我有兩個字符串列表。如何獲取它們之間的不同值列表或從第一個列表中刪除第二個列表元素?獲取C#中兩個列表之間的清單列表
List<string> list1 = { "see","you","live"}
List<string> list2 = { "see"}
結果應該是{"you","live"}
。
在我看來像你需要Enumerable.Except()
:
var differences = list1.Except(list2);
然後你就可以通過不同環路:
foreach(var difference in differences)
{
// work with each individual string here.
}
如果你想從第一個列表中的項目除了在項目第二個列表,使用
list1.Except(list2)
如果你想獲得在t他第一列表或第二列表,但不能同時,您可以使用
list1.Except(list2).Concat(list2.Except(list1))
這是我找到唯一的好辦法....
從兩個列表獨特
var A = new List<int>() { 1,2,3,4 };
var B = new List<int>() { 1, 5, 6, 7 };
var a= A.Except(B).ToList();
// outputs List<int>(2) { 2,3,4 }
var b= B.Except(A).ToList();
// outputs List<int>(2) { 5,6,7 }
var abint= B.Intersect(A).ToList();
// outputs List<int>(2) { 1 }
我如何獲得「差異」的元素?它的變種沒有列表 – kartal
@salamonti - var關鍵字只是一個快捷方式。在這種情況下,這將是一個IEnumerable,你可以迭代。 –
我從來不喜歡使用var,除非絕對必要,但是儘管如此,chrs的例子 – BKSpurgeon