我需要类似于Dictionary或SortedList的东西,但是当它收到两个相同的东西时,我会不断抛出异常...还有另外一种方法吗?
由于
答案 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的: