每个条目 3 个元素的数据收集

Per*_*nce 0 c# collections

.net 框架中是否存在数据集合(理想情况下collections.generic可以处理三个不同的对象(例如intstringfloat),从而可以在给定元素之一的情况下访问其他两个元素(假设每个对象都是唯一的)。

我不知道这是否存在,或者即使它可以被创建,但理想情况下它的工作方式与 a 类似,Dictionary<key,value>但本质上是Collection <key,key,key>一种可以像Collection[key].third = data.

正如我所说,我不知道这种安排是否存在;如果是的话,请您指出正确的方向,如果没有,请告诉我是否有任何关于如何实现这一目标的想法。

提前致谢。

D S*_*ley 5

与您正在寻找的最接近的现成数据结构是List<Tuple<int, string, float>>. 您可以轻松地使用 linq 搜索与这三个部分中任何一个的条件相匹配的对象。

但是,创建代表您的元素的自定义类型并不需要大量工作:

public class Element 
{
    public int IntValue {get; set;}
    public string StringValue {get; set;}
    public float FloatValue {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

多键字典也不会太难 - 只需覆盖每种类型的索引器即可。请注意,所有三种类型必须不同,否则您将收到编译器错误,因为编译器不知道您要绑定到哪个索引器。

优点是您可以为每个值使用适当的名称int- 该值代表什么?这是自定义类相对于 context 的一Tuple优势

我还想指出,float价值观的“平等”可能很棘手。两个看似相等的浮点值实际上可能略有不同。通常通过在指定容差范围内查找来比较浮点值。因此,它们通常为索引结构(如Dictionary.