我正在寻找一种可以有重复键的字典类。
我搜索了一下,发现 LookUp 类可以用来存储重复键,但是它没有默认构造函数,所以我们不能在没有任何其他对象的情况下初始化它。
但是我最初没有任何这样的对象,我可以从中初始化一个 LookUp 对象。
所以,我的问题是,.Net 框架 3.5 中是否有任何类,其行为类似于 Dictionary,但允许我拥有像 LookUp 这样的重复键?
我正在寻找一种可以有重复键的字典类。
我搜索了一下,发现 LookUp 类可以用来存储重复键,但是它没有默认构造函数,所以我们不能在没有任何其他对象的情况下初始化它。
但是我最初没有任何这样的对象,我可以从中初始化一个 LookUp 对象。
所以,我的问题是,.Net 框架 3.5 中是否有任何类,其行为类似于 Dictionary,但允许我拥有像 LookUp 这样的重复键?
您可以创建一个键值对列表。
List<KeyValuePair<string,int>>
根据定义,字典永远不能有多个具有相同值的键。(如果您查找一个键,您会返回什么?)即使是您所指的查找,也不允许它。您可以做的是让每个键引用多个值(逻辑上,而不是技术上)。这是通过拥有一个字典来完成的,其中值是某种数据结构(例如,a List
),其中包含与该特定键对应的所有值。
您可以使用列表字典自己编写类型,Dictionary<TKey, List<TValue>>
您可以创建一个从该类继承的类,并添加合适的添加方法等来处理为给定键上的第一项创建新列表。