2013-06-15 12 views
6

Chcę porównać wartości dwóch list dla programu, który robię. Chcę, aby porównać pierwszą wartość listy 1 z pierwszą wartością listy 2, a następnie drugą wartość listy 1 z drugą wartością listy 2 i tak dalej.Porównaj wartości z 2 list C#

Jak mam to zrobić w C#?

+3

możemy zobaczyć to, czego próbowaliśmy –

+1

Nie możemy pomóc, jeśli nie można pokazać nam co wypróbowałeś i co najmniej badałeś przez jakiś czas. – rcdmk

Odpowiedz

11

Istnieje specjalna metoda ta, zwana SequenceEqual:

IList<int> myList1 = new List<int>(...); 
IList<int> myList2 = new List<int>(...); 
if (myList1.SequenceEqual(list2)) { 
    ... 
} 

można zrobić porównanie niestandardowej sekwencji z wykorzystaniem metody Zip. Na przykład, aby sprawdzić, czy każda para jest nie w różnicą trzech, można to zrobić:

IList<int> myList1 = new List<int>(...); 
IList<int> myList2 = new List<int>(...); 
if (myList1.Zip(list2, (a, b) => Math.Abs(a - b)).Any(diff => diff > 3)) { 
    ... 
} 
+0

+1 bicie mnie do tego –

+2

Nie możemy wychowywać dzieci, jeśli dajesz im cukierki przed kolacją. ;) – rcdmk

+0

Czy mogę otrzymać zmienną? Ponieważ nie chcę tylko sprawdzać, czy jest równy, ale chcę sprawdzić, czy mieści się w przedziale od -3 do +3 (co wiem, jak to zrobić). – ShaunRussell