我正在寻找支持重复键和值的字典类型.NET集合,类似这样的
Collection c = new Collection();
c["Key"] = "value";
c["Key"] = "value";
c["Key1"] = "value1";
词典不允许使用相同的键
答案 0 :(得分:9)
我建议使用课程Lookup<TKey,TElement>
。它就像一个允许重复键的字典。
答案 1 :(得分:3)
您可以使用包含列表的字典:
Dictionary<string, List<string>> MyValues;
答案 2 :(得分:2)
如果在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");
另一种方法 - 创建自己的集合,将“隐藏”一些辅助方法中的所有不执行操作。例如,您的索引器可以检查您的哈希表中是否已经有apporpriate键并在其中创建空列表。
答案 3 :(得分:1)
你正在寻找一个字典
答案 4 :(得分:0)
答案 5 :(得分:0)
只是一个猜测,但为什么不使用字典但是将值设为List?
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");
答案 6 :(得分:0)
multimap就足够了。