3

重複の可能性:
一意のキーと値を持つC#ディクショナリタイプ

辞書に一意のキーと値があることを確認したいと思います。独自のクラスを構築する以外に、この種の検証を追加する方法はありますか?これが、辞書の値の検証を実行することを考えることができる唯一の方法です。しかし、グーグルでは見つけられないような属性を追加できるかもしれません。

この辞書をWPFバインディングで使用することも検討していますが、それが役立つ場合もあります。

4

2 に答える 2

5

定義上、ディクショナリ キーは一意です。ディクショナリ値が一意であることの確認は、すべての配列またはコレクション メンバーが一意であることを確認するのと同じ方法で行われます。

.NET 3.5 ではHashSet<T>、TValue 型がEquals(TValue).

HashSet<TValue> seenValues = new HashSet<TValue>();
foreach(TKey key in myDictionary) {
    if( seenValues .Contains( myDictionary[key] ) ) throw new Exception("Dictionary contains duplicate item.");
    seenValues .Add( myDictionary[key] );
}
于 2012-09-05T17:59:24.743 に答える