我可以使用哪种数据结构/类来表示一对多关系?
我正在尝试编写一个程序,该程序将使用一个数据结构/类,该数据结构/类将保存一个键的多个数据条目 - 这在某种程度上类似于字典,但它不是一对一而是一对多关系。我试图想出一个我可以使用的课程,但我想不出任何办法。
例如,它可能看起来像:
我有一个参数 xValue 和不同文件中的 3 个不同值,所以我会有:
xValue, <1.txt, 1>
xValue, <2.txt, 2>
xValue, <3.txt, 3>
有什么想法吗?
编辑: 我已经弄清楚了 - 毕竟我可以使用
Dictionary<;字符串,字典<...,...> >
,我不能吗?
I am trying to write a program that would use a data structure/class that will hold multiple data entries for one key - this will be somehow similar to Dictionary but it's not one to one but one to many relation. I am trying to think of a class that I can use but I cannot figure anything out.
For instance how it may look like:
I have a parameter xValue and 3 different values in different files so i would have :
xValue, <1.txt, 1>
xValue, <2.txt, 2>
xValue, <3.txt, 3>
Any ideas ?
EDIT:
I have figured this out - After all I can use
Dictionary< string , Dictionary<..., ... > >
, can't I ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
由于 .NET 本身没有多重集,因此我会选择
您的情况。
如果您同意使用第 3 方容器,您可以从此处查找答案,例如,Wintellect PowerCollections。
As there is no multiset in .NET natively, I would go for
in your case.
If you are ok with using 3rd-party containers, you can look up the answers from here, e.g., Wintellect PowerCollections.
如果您不需要在初始化后修改此集合而只需要进行搜索,您可以利用内置的
Lookup
类,但实际上,在极少数情况下,当您已经有了 IEnumerable<> 实例,并将其展平以查找数据结构,无论如何,记住 .NET 提供了这样有趣的类,这是非常有用的。MSDN
您无法显式实例化它,只能使用 LINQ
ToLookup()
方法获取查找实例。有一些主要限制,因此您可以使用此类作为查找数据结构 - 进行搜索。If you do not need modify this collection after initialization and just need to do search, you can leverage built in
Lookup<TKey, TElement>
class, but really this would be tricky and useful in rare cases when you already haveIEnumerable<>
instances and would flatten it to lookup data structure, anyway this is pretty useful to keep in mind that .NET provides such intersting class.MSDN
You can not instantiate it explicitly and just can get instance of lookup using LINQ
ToLookup()
method. There are major restrictions so you can use this class as lookup data structure - doing search.