두 개의 사전에 동일한 키와 값이 포함되어 있으면 동일한 해시 코드를 반환하고 똑같을 것이라고 생각할 수 있습니까? 하지만 그들은 - 내가 뭘 잘못하고 있는거야? 또는이 방법으로 사전을 어떻게 비교합니까?사전 (TKey, TValue) GetHashCode 및 동등 - 어떻게 작동합니까?
감사합니다. 아래 코드 동일
/이 경우에도 동일한 순서로 테스트하고 싶습니다.
SortedDictionary<int,string> sd1 = new SortedDictionary<int,string>();
sd1.Add(1,"one");
sd1.Add(2, "two");
sd1.Add(5, "five");
int sd1Hash = sd1.GetHashCode();
SortedDictionary<int, string> sd2 = new SortedDictionary<int, string>();
sd2.Add(1, "one");
sd2.Add(2, "two");
sd2.Add(5, "five");
int sd2Hash = sd2.GetHashCode();
//This is false
bool areEqual = sd1.Equals(sd2);
그것은이 방법은 .NET 2.0에서 사용할 수 없다는 것을 알아 내게 꽤했다 :에
당신은 더 많은 정보를 찾을 수 있습니다. .NET 2.0에 대한 대안을 알고 있습니까? – Aamir
해시 코드와 평등을 결정하기 위해 사전의 내용을 보는 독자적인 IEqualityComparer>을 구현해야합니다. –
thecoop
@Aamir, 내가 아는 한 .NET2에 대한 대안은 없습니다. 두 컬렉션을 동시에 반복하고 차례대로 각 항목을 비교하는 자체 메서드를 작성하는 것은 어렵지 않지만 (정확히 SequenceEqual 메서드가 수행하는 것입니다). – LukeH