我正在尝试编写一个程序,该程序将使用一个数据结构/类来保存一个键的多个数据条目 - 这将以某种方式类似于Dictionary,但它不是一对一,而是一对多的关系。我想要一个我可以使用的课程,但我无法解决任何问题。
例如它的样子:
我在不同的文件中有一个参数xValue和3个不同的值,所以我会:
xValue, <1.txt, 1>
xValue, <2.txt, 2>
xValue, <3.txt, 3>
有什么想法吗?
修改 我已经想到了 - 毕竟我可以使用
Dictionary< string , Dictionary<..., ... > >
答案 0 :(得分:3)
由于.NET本身没有多重集,我会选择
Dictionary<Key, HashSet<XValue>>
在你的情况下。
如果您可以使用第三方容器,则可以从here查找答案,例如Wintellect PowerCollections。
答案 1 :(得分:1)
如果您不需要在初始化之后修改此集合并且只需要进行搜索,那么您可以利用内置的Lookup<TKey, TElement>
类,但实际上这在您已经拥有{{1}的极少数情况下会非常棘手且有用实例并将其展平为查找数据结构,无论如何,要记住.NET提供这样的有趣的类是非常有用的。
表示每个映射到一个或多个值的键集合。一个
IEnumerable<>
类似于Lookup<TKey, TElement>
。该 区别在于Dictionary<TKey, TValue>
将键映射到单个 值,而Dictionary<TKey, TValue>
将键映射到集合 值。
您无法显式实例化它,只能使用LINQ Lookup<TKey, TElement>
方法获取查找实例。有一些主要限制,因此您可以将此类用作查找数据结构 - 进行搜索。
没有公共构造函数来创建a的新实例 抬头。另外,查找对象 是不可变的,也就是说,你不能添加或删除元素或键 创建后的Lookup对象。