具有重复键和值的.net集合

本文关键字:net 集合 键和值 | 更新日期: 2023-09-27 18:09:11

我正在寻找一个字典类型的。net集合支持重复的键和值,就像这样

Collection c = new Collection();
c["Key"] = "value";
c["Key"] = "value";
c["Key1"] = "value1";

字典不允许相同的键

具有重复键和值的.net集合

我建议使用Lookup<TKey,TElement>类。它就像一个字典,允许重复的键。

您可以使用包含列表的字典:

Dictionary<string, List<string>> MyValues;

如果你在c++中需要类似multimap的东西,在。net中没有直接对应的东西。但是您可以通过将集合作为值放入Dictionary of TKey, TValue:

来模拟这一点
Dictionary<string, List<string>> c = new Dictionary<string, List<string>>();
c["Key"] = new List<string>();
c["Key"].Add("value");
c["Key"].Add("value2");
c["Key2"] = new List<string>();
c["Key2"].Add("Value1");

另一种方法是创建自己的集合,将所有不必要的操作"隐藏"在一些helper方法中。例如,您的索引器可以检查您的散列表中是否已经有合适的键,并在其中创建空列表。

您正在查找字典

哈希表?

http://msdn.microsoft.com/de-de/library/system.collections.hashtable.aspx

一个multimap就足够了。

只是一个猜测,但为什么不使用字典,但使值一个列表?

Dictionary<string, List<string>> c = new Dictionary<string, List<string>>();
c["Key"] = new List<string>();
c["Key1"] = new List<string>();
c["Key"].Add("value");
c["Key"].Add("value");
c["Key1"].Add("value1");