C# 我可以使用哪个数据结构/类来表示一对多关系?

C# 我可以使用哪个数据结构/类来表示一对多关系?,c#,data-structures,one-to-many,C#,Data Structures,One To Many,我正在尝试编写一个程序,该程序将使用一个数据结构/类,该数据结构/类将为一个键保存多个数据项-这在某种程度上类似于字典,但它不是一对一而是一对多关系。我试图想出一个我可以使用的类,但我什么都想不出来 例如,它可能是什么样子: 我在不同的文件中有一个参数xValue和3个不同的值,因此我会: xValue, <1.txt, 1> xValue, <2.txt, 2> xValue, <3.txt, 3> xValue, xValue, xValue, 有什么

我正在尝试编写一个程序,该程序将使用一个数据结构/类,该数据结构/类将为一个键保存多个数据项-这在某种程度上类似于字典,但它不是一对一而是一对多关系。我试图想出一个我可以使用的类,但我什么都想不出来

例如,它可能是什么样子:

我在不同的文件中有一个参数xValue和3个不同的值,因此我会:

xValue, <1.txt, 1>
xValue, <2.txt, 2>
xValue, <3.txt, 3>
xValue,
xValue,
xValue,
有什么想法吗

编辑: 我已经弄明白了——毕竟我能用

Dictionary


我不能吗

由于.NET中本机没有multiset,我会选择

Dictionary<Key, HashSet<XValue>>
字典
就你而言


如果您同意使用第三方容器,您可以从中查找答案,例如。

如果您在初始化后不需要修改此集合,只需要执行搜索,您可以利用内置的
查找
类,但实际上,当您已经有
IEnumerable
实例并将其展平以查找数据结构时,这在极少数情况下是非常棘手和有用的,无论如何,请记住.NET提供了如此有趣的类

表示每个映射到一个或多个值的键的集合。A.
查找
类似于
字典
。这个 不同之处在于
字典将键映射到单个
值,而
查找将键映射到
价值观

您不能显式地实例化它,只能使用LINQ
ToLookup()
方法获取查找实例。有一些主要的限制,所以您可以使用这个类作为查找数据结构-执行搜索

没有公共构造函数来创建 查找。此外,查找对象 是不可变的,即不能从中添加或删除元素或键 已创建的查找对象


事实上,您可以使用嵌套字典,但是如果您不需要知道
xValue
来自哪个文件,您可以使用
哈希集。