C#字典每个键有两个值?

Tom*_*idd 39 c# generics dictionary

我有一个代码的情况Dictionary<string, string>似乎是最好的主意 - 我需要这些对象的集合,我需要它们可以通过一个唯一的密钥访问.究竟是什么字典概念,对吧?

好吧,这些要求已经扩展到我现在需要为每个键保存一点额外信息的点(如果你很好奇,则为布尔值).

所以,我想扩展概念,用字符串和布尔值创建一个新的数据结构,并让它现在成为一个Dictionary<string, NewCustomObject>.

但是,对于像布尔标志这样的一个额外值,它只是感觉有点过分.然而,我不知道任何类似字典的通用对象,每个键有两个值.

只是有一个自定义对象字典是最好的方法,或者这个场景有什么更简单的东西吗?

Tra*_*Guy 32

实际上,你刚刚描述的是Dictionary集合的理想用途.无论值的类型如何,它都应该包含键:值对.通过将值设为自己的类,如果需要,您将能够在将来轻松扩展它.


Ed *_* S. 14

class MappedValue
{
    public string SomeString { get; set; }
    public bool SomeBool { get; set; }
}

Dictionary<string, MappedValue> myList = new Dictionary<string, MappedValue>;
Run Code Online (Sandbox Code Playgroud)


wom*_*omp 7

我认为通常你会进入元组的概念 - 类似于Tuple<x, y, z>或者Tuple<string, bool, value>.

C#4.0将为元组提供动态支持,但除此之外,您需要自己动手或下载Tuple库.

您可以在此处查看我的答案,其中我为通用元组类提供了一些示例代码.或者我可以在这里重新发布:

public class Tuple<T, T2, T3>
{
    public Tuple(T first, T2 second, T3 third)

    {
        First = first;
        Second = second;
        Third = third;
    }

    public T First { get; set; }
    public T2 Second { get; set; }
    public T3 Third { get; set; }

}
Run Code Online (Sandbox Code Playgroud)


Hen*_*man 6

在.NET4中,您可以使用(未​​选中): Dictionary<string, Tuple<bool,string>>