允许相同密钥的通用集合

2024-01-12

收藏如HashTable and Dictionary不允许添加具有相同键的值,但我想将具有相同键的相同值存储在Collection<int,string>.

是否有一个内置集合可以让我做到这一点?


您可以使用List<T>包含自定义类,甚至是List<Tuple<int,string>>.

List<Tuple<int,string>> values = new List<Tuple<int,string>>();

values.Add(Tuple.Create(23, "Foo"));
values.Add(Tuple.Create(23, "Bar"));

或者,您可以制作一个Dictionary<int, List<string>>(或其他一些字符串集合),并以这种方式填充值。

Dictionary<int, List<string>> dict = new Dictionary<int, List<string>>();
dict.Add(23, new List<string> { "Foo", "Bar" });

这样做的优点是仍然可以通过键提供快速查找,同时允许每个键有多个值。但是,稍后添加值会有点棘手。如果使用它,我会将值的添加封装在方法中,即:

void Add(int key, string value)
{
    List<string> values;
    if (!dict.TryGetValue(key, out values))
    {
        values = new List<string>();
        dict[key] = values;
    }

    values.Add(value);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

允许相同密钥的通用集合 的相关文章

随机推荐