我想使用像 Dictionary
这样的通用集合,但是 Dictionary
要求每个键都是唯一的。我有同一个“键”的多个值,所以我需要一个通用集合来实现这一点。
我意识到这使得 key 不再是真正的 key ,但我不知道还能叫它什么。
最佳答案
几个选项供您考虑:
Dictionary<TKey, List<TValue>>
— 为每个键保留一个值列表,不防止重复 相同键的值(即重复对); Dictionary<TKey, HashSet<TValue>>
— 为每个键保留一组值,防止重复值 对于相同的 key ; List<KeyValuePair<TKey, TValue>>
— 保留对列表,不防止重复 相同键的值。 请注意,在后一种情况下
KeyValuePair
是 struct
,不是 class
,因此这意味着有点不同的处理。正确的选项取决于您的实际用例。
关于.net - 是否有一个带有键/值对的通用集合,其中键可以出现多次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5174309/