2011-07-11 9 views

Odpowiedz

34

Wydaje mi jak trzeba Enumerable.Except():

var differences = list1.Except(list2); 

a następnie można pętli różnic:

foreach(var difference in differences) 
{ 
    // work with each individual string here. 
} 
+1

jak mogę uzyskać elementy "różnic"? jego var nie ma listy – kartal

+1

@salamonti - słowo kluczowe var jest po prostu skrótem. W takim przypadku byłby to IEnumerable , który można powtórzyć. –

+0

Nigdy nie lubiłem używać var, chyba że jest to absolutnie konieczne, ale mimo wszystko, chrs na przykład – BKSpurgeon

6

Jeśli chcesz, aby elementy z pierwszej listy, z wyjątkiem pozycji w druga lista, użyj

list1.Except(list2) 

Jeśli chcesz dostać przedmioty, które są w t że pierwsza lista lub w drugim liście, ale nie oba, można użyć

list1.Except(list2).Concat(list2.Except(list1)) 
0

Jest to dobry sposób znaleźć wyjątkowy ....

Unique z dwóch listy

 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 } 
Powiązane problemy