2013-06-15 50 views
6

Tôi muốn so sánh giá trị của hai danh sách cho một chương trình tôi đang thực hiện. Tôi muốn nó so sánh giá trị 1 của Danh sách 1 với giá trị đầu tiên của Danh sách 2, và sau đó là giá trị thứ hai của Danh sách 1 đến giá trị thứ hai của Danh sách 2, v.v.So sánh giá trị của 2 danh sách C#

Làm cách nào để tôi thực hiện việc này trong C#?

+3

Chúng ta có thể thấy những gì bạn đã cố gắng –

+1

Chúng tôi không thể giúp bạn nếu bạn không thể chỉ cho chúng ta những gì bạn đã thử và ít nhất bạn nghiên cứu một thời gian. – rcdmk

Trả lời

11

Có một phương pháp đặc biệt cho điều này, được gọi là SequenceEqual:

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

Bạn có thể làm so sánh tùy chỉnh của chuỗi bằng cách sử dụng phương pháp Zip. Ví dụ, để xem nếu có cặp là không trong sự khác biệt của ba, bạn có thể làm điều này:

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 đánh bại tôi với nó –

+2

Chúng tôi không thể giáo dục trẻ em nếu bạn tặng kẹo trước bữa tối. ;) – rcdmk

+0

Tôi có thể lấy biến không? Bởi vì tôi không chỉ muốn kiểm tra xem nó có bằng nhau hay không, nhưng tôi muốn xem liệu nó có nằm trong khoảng từ -3 đến +3 (mà tôi biết cách làm). – ShaunRussell