ハローに等しいですハッシュテーブルの等しいメソッドですが、処理されません。ハッシュテーブルA iが試み</p> <p>.. C#の でiはキー/値のペアが同じ であり、iは、二つハッシュテーブルのキー/値のペアが等しいかどうかを確認したい2つのハッシュテーブルオブジェクトを持ってハッシュテーブルB制御
foreachですべての項目をチェックする必要がありますか?
おかげ
ハローに等しいですハッシュテーブルの等しいメソッドですが、処理されません。ハッシュテーブルA iが試み</p> <p>.. C#の でiはキー/値のペアが同じ であり、iは、二つハッシュテーブルのキー/値のペアが等しいかどうかを確認したい2つのハッシュテーブルオブジェクトを持ってハッシュテーブルB制御
foreachですべての項目をチェックする必要がありますか?
おかげ
あなたがしたいのは、組合をとり、サイズがカウントと同じかどうかを確認することです。あなたは設定の違いを行うことができますが、あなたは両方の方法でそれをやらなければならないでしょう。これらは簡単にLINQの拡張メソッドで行うことができますが、ハッシュテーブルを使用しているので、あなたはキャストを使用する必要があります()のIEnumerableにそれを得るために:
var table1 = new Hashtable {{"A", 1}, {"B", 2}, {"C", 3}};
var table2 = new Hashtable {{"B", 2}, {"A", 1}, {"C", 3}};
bool same = table1.Cast<DictionaryEntry>().Union(table2.Cast<DictionaryEntry>()).Count() == table1.Count;
Console.WriteLine("Same = " + same);
私は一般的に、型の安全性を得るために、ハッシュテーブルの上に辞書をお勧めしますが、キャスト<>()では、古いHashtableで見つかるLinqのものを使用できます。
私は、ハッシュテーブルの同じ方法を試みたが、これはハッシュテーブルに2つの参照が同じであるかどうかを確認するために、参照の比較を行います
を働いていません。それはあなたが望むものではありません。
shoul foreachですべてのアイテムをチェックしますか?
はい。 2つのハッシュテーブルが同じ数の項目を持ち、最初のもののすべてのキーと値のペアが2番目のハッシュテーブルにあることを確認します。
両方向を確認する必要はありますか?両方のハッシュテーブルのキー数が同じであること、および最初のハッシュテーブルのすべてが2番目にあり、キーと値のペアが等しいことを検証するだけでは不十分ですか? –
@Joel Rondeau:そうです。 – jason