2014-05-22 1 views
1

항목별로 두 목록을 비교하고 싶습니다. linq을 사용하여 다음 코드를 어떻게 표현할 수 있습니까?linq을 사용하여 두 항목을 항목별로 비교하십시오.

bool result = true; 
var list1 = new List<int> { 10, 20, 30, 40 }; 
var list2 = new List<int> { 10, 20, 30, 40 }; 
for (int index = 0; index < list1.Count(); index++) 
{ 
    result &= list1[index] == list2[index]; 
} 
+0

순서가 중요합니까? –

답변

8

당신은 SequenceEqual를 사용할 수 있습니다

는 두 시퀀스가 ​​자신의 유형에 대한 기본 같음 비교자를 통해 요소를 비교하여 같은지 여부를 확인합니다.

예 :

bool result = list1.SequenceEqual(list2); 
+3

Linq는 매우 강력합니다. 언젠가 그것은 세계를 정복 할 것입니다. Btw 나는 열거하기 전에 목록의 항목 수를 확인하는 것을 고려할 것입니다. 'result = (list1.Count == list2.Count) && list1.SequenceEqual (list2)' –

+0

@SergeyBerezovskiy 같은 이유 Linq 구현 자체가이 작업을 수행하지 않는 이유는 무엇입니까? – CodingIntrigue

+3

@RGraham 아니, 그것은하지 않습니다 - 단순히 enumerables 및 iterates 모두 열거자를 얻는 동안 항목과 그 항목이 동일합니다. 인수 유형 (array, ICollection 등)에는 특별한 것이 없습니다. [Proof] (http://referencesource.microsoft.com/#System.Core/System/Linq/Enumerable.cs) –

관련 문제