【发布时间】:2017-12-12 15:34:27
【问题描述】:
我想创建一个有 1 个键,2 个值的数据结构,如下所示:
List<KeyValuePair<double, double, double>> list = new List<KeyValuePair<double, double, double>>();
我基本上有 x、y、z 坐标值,我想继续将它们附加到数据结构中。在附加数据之后,我想检索所有可用的“x”(类似于“列表”) .对于x的每个值,我想找到多个“y”值。然后对于特定的“x”和“y”值,我想找到所有的多个“z”值。
例如:如果我有像 (1,2,3) 这样的坐标; (1,3,4) ; (1,2,6); (1,2,9) 对于 1 的值,我想检索 2 和 3。同样,对于 1,2 的值;我想检索值 6 和 9。
如果有人可以让我知道在 C# 中执行此操作的过程,我将非常高兴。 提前致谢。
【问题讨论】:
-
正如名称
KeyValuePair所说,它是存储一个键和一个值。在这里,您有 3 个值并且没有键,一个简单的元组就是您要查找的数据结构。这个不是。 -
为什么不用
Dictionary<double, Tuple<double, double>>甚至Dictionary<double, Dictionary<double, List<double>>>? -
你为什么要使用数据结构,为什么不创建一个保存数据的类(A DTO),你可以做任何你想做的事?
-
这听起来像你需要一个 multiple key 字典。谷歌一下,有很多重复的。 @RaniDevpr,DTO 与算法标签有什么关系,这意味着检索性能和存储效率?你的意思是“使用数据库来存储它们并运行查询来检索你需要的东西”?
-
使用适当的类来保存您的 X/Y/Z 值,这将使您的代码更具可读性。
标签: c# algorithm data-structures