你可以在Dictionary集合或其他类型的集合中拥有2个以上的项目吗?

Xai*_*oft 3 c# collections

我怀疑这是可能的,但我很好奇你是否可以在字典中有超过2项(键,值).也许一个关键和2个值.是否有一个允许这个的集合对象?我实际上要做的是存储键的键和值以及另一个值来保存键的找到次数.例如,我可能有一个遍历颜色列表的for循环,每种颜色都有一个唯一值.当我浏览列表时,我不仅要将颜色,颜色的唯一值存储在字典中,还要存储列表中出现红色的次数.

我输入了以下声明,现在我想弄清楚如何测试它是否已经包含值,如果没有,将它添加到列表中,计数为1,如果是,则增加计数.在我发布声明之后,我将用一个字典发布我是如何做到这一点的.

Dictionary<string, Dictionary<int,int>> colors = 
                          new Dictionary<string, Dictionary<int,int>>();
Run Code Online (Sandbox Code Playgroud)

以下是我之前处理它的代码:

Dictionary<string, int> colors = new Dictionary<string, int>();

 foreach (Color color in ColorList)
        {
            if (colors.ContainsKey(color.ToString()))
                colors[color]++;
            else
                colors.Add(color, 1);
        }
Run Code Online (Sandbox Code Playgroud)

wom*_*omp 7

你可以创建一个简单的Tuple类,比如Triple.它本质上是一个通用键控字典,但包含一个额外的对象.这种情况非常普遍,人们已经制作了库,可以将其扩展到4到10个对象.这是一个例子:

    public struct Triple<X, Y, Z>
    {
        public X First;     
        public Y Second;    
        public Z Third;     

        public Triple(X x, Y y, Z z)
        {
            First = x;
            Second = y;
            Third = z;
        }
    }
Run Code Online (Sandbox Code Playgroud)

然后像这样使用它:

 var myTriple =  new Triple<string, Color, int>(
                        "key", 
                        myColor, 
                        count
                    )
Run Code Online (Sandbox Code Playgroud)

,