具有完全相同的键和值的字典

时间:2010-05-22 18:31:04

标签: c# .net winforms list dictionary

我需要类似于Dictionary或SortedList的东西,但是当它收到两个相同的东西时,我会不断抛出异常...还有另外一种方法吗?

由于

5 个答案:

答案 0 :(得分:4)

您可能需要multimap。您可以使用Dictionary<Key, List<Value>>模拟一个。另请参阅this question,它有一些多图实现。

答案 1 :(得分:4)

我的猜测是你正在使用

dictionary.Add(key, value);

如果您对替换现有的键/值对感到高兴,那么只需使用索引器:

dictionary[key] = value;

如果您想为同一个密钥设置多个值,请参阅其他答案:)

答案 2 :(得分:0)

字典或排序列表中的键应该是唯一的键:这是哈希表的目的。您可以使用List<KeyValuePair<TKey, TValue>>KeyValuePair<TKey, TValue>[]代替,但当然您无法按键找到值,因为您可能有重复项。

答案 3 :(得分:0)

字典和排序列表都是键控的,这意味着键必须是唯一的。

您可以在添加商品之前进行检查,例如在添加之前dic.ContainsKey(key)list.Contains(item)

如果您希望能够为单个密钥添加多个值,则可以使用NameValueCollection

答案 4 :(得分:0)

如果你要求的是一个字符,其值与键相同,那么System.Collections.Generic命名空间中有一个名为'HashSet'的泛型集合类型,它看起来就像是为了这个目的。< / p>

如果您只是在询问添加到词典时产生的异常,我认为Jon Skeet可能正确地解决了您的问题。

HashSet的:

http://msdn.microsoft.com/en-us/library/bb359438.aspx