.net 框架中是否存在数据集合(理想情况下collections.generic可以处理三个不同的对象(例如int、string和float),从而可以在给定元素之一的情况下访问其他两个元素(假设每个对象都是唯一的)。
我不知道这是否存在,或者即使它可以被创建,但理想情况下它的工作方式与 a 类似,Dictionary<key,value>但本质上是Collection <key,key,key>一种可以像Collection[key].third = data.
正如我所说,我不知道这种安排是否存在;如果是的话,请您指出正确的方向,如果没有,请告诉我是否有任何关于如何实现这一目标的想法。
提前致谢。
与您正在寻找的最接近的现成数据结构是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.