Language/C#

[C#] 두 List가 같은지 비교하기

범데이 2022. 10. 30. 17:59

Except()를 사용하여 비교할 수 있다.

var firstNotSecond = list1.Except(list2).ToList();
var secondNotFirst = list2.Except(list1).ToList();

위의 firstNotSecondslist1에서 list2를 제외하여 리스트로 변환하고,

secondNotFirst는 반대로 list2에서 list1를 제외하여 리스트로 변환한다.

 

그런 다음 아래와 같이 Any()메서드로 두 리스트가 비어있는지 확인하여

결과적으로 두 List가 같은지 비교할 수 있다.

!firstNotSeconds.Any() && !secondNotFirsts.Any();

 

 

이들을 다음과 같이 메서드로 구현할 수 있다.

private bool getIsEqualTwoLists(List<T> list1, List<T> list2)
{
    var firstNotSeconds = list1.Except(list2).ToList();
    var secondNotFirsts = list2.Except(list1).ToList();

    return !firstNotSeconds.Any() && !secondNotFirsts.Any();
}

 

 

 

 


#References

https://stackoverflow.com/a/12795900

반응형