C#에서 두 목록 비교
-
19-09-2019 - |
문제
나는 전화 수업이 있습니다
MyClass
이 클래스는 iquateable을 상속하고 구현하는 방식과 동일합니다. (의미 : 코드에서 개별적으로 두 개의 myclass tyupe 객체를 비교하면 작동합니다)
그런 다음 두 개의 목록을 만듭니다.
var ListA = new List<MyClass>();
var ListB = new List<MyClass>();
// Add distinct objects that are equal to one another to
// ListA and ListB in such a way that they are not added in the same order.
Lista와 Listb를 비교하려고 할 때 충실해야합니까?
ListA.Equals(ListB)==true; //???
해결책
다음을 시도하십시오
ListA.SequenceEquals(ListB);
시퀀스 equals는에서 사용할 수있는 확장 방법입니다 Enumerable
수업. 시스템과 함께 제공되는 C# 3.5 프로젝트에서 기본적으로 사용할 수 있습니다.
다른 팁
귀하의 질문에 답하기 위해, 당신은 사실이되어서는 안됩니다. List
그리고 List<T>
.equals를 정의하지 않으므로 객체를 상속합니다.
public static bool Equals(object objA, object objB)
{
return ((objA == objB) || (((objA != null) && (objB != null)) && objA.Equals(objB)));
}
그리고 objA.Equals(objB)
가상입니다. 올바르게 기억하면 기본 구현은 참조 평등을 확인하면 (메모리의 동일한 개체를 가리키는) 코드가 False를 반환합니다.
제휴하지 않습니다 StackOverflow