有没有办法验证字典的值

Jus*_*ony 3 c# validation dictionary .net-3.5

可能的重复:
具有唯一键和值的 C# 字典类型

我想确保字典具有唯一的键和值。有没有什么方法可以在构建我自己的类之外添加这种验证?这是我能想到的完成字典中值验证的唯一方法。但是,也许我可以添加一些我似乎无法通过谷歌找到的属性。

我希望将此字典与 WPF 绑定一起使用,如果这也有帮助的话。

Dai*_*Dai 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] );
}
Run Code Online (Sandbox Code Playgroud)