2つの辞書に同じキーと値が含まれていれば、同じハッシュコードを返して同等のものになると思いますか?しかし、彼らは - 私は間違って何をしていないのですか?またはこの方法で辞書をどのように比較すればよいですか?辞書(TKey、TValue)GetHashCodeとEquals - どのように動作しますか?
ありがとうございました。コードsameple以下
/この場合私はまた、同じ/等しいの順序をテストしたいと思います。
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