문제

나는 전화 수업이 있습니다

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를 반환합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top