如何在字典中创建更多2个参数?

时间:2016-02-28 19:53:08

标签: c# .net dictionary

我正在尝试构建一个简单的应用程序,重点是我必须使用字典。我的字典中会有这样的数据:

(键,数,数字,数,数字)

以下是我的代码,它实现了我的数据。

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

我已经查看了许多有关如何解决它的消息来源,但我无法找到它。 我得到一个错误,它必须有两个参数。

你能给我一个解决方案,让字典可以容纳2个以上的参数吗?

2 个答案:

答案 0 :(得分:2)

您可以创建一个类来保存4个数字:

public class MyData
{
    public int Number1 {get;set;}
    public int Number2 {get;set;}
    public int Number3 {get;set;}
    public int Number4 {get;set;}
}

并将其用作字典值类型:

Dictionary<string,MyData> states = new Dictionary<string,MyDate>();

以下是将项添加到字典中的代码示例:

states.Add("my_key", new MyData { Number1 = 1, Number2 = 2, Number3 = 3, Number4 = 4});

要访问特定密钥的数据,您可以使用:

MyData data = states["my_key"];

int number1 = data.Number1;
//...

要迭代所有数据,您可以使用这样的简单foreach

foreach(var kvp in states)
{
    var key = kvp.Key;

    var data = kvp.Value;

    var number1 = data.Number1;
    //...
}

MyData的另一种选择是Tuple类。但拥有自己的类型可能更好,因为您可以为4个数字属性拥有自己的名称。

答案 1 :(得分:0)

如果最后四个整数的名称无关紧要,可以使用

 Dictionary<string, List<int>>

通过这种方式,您可以使用字符串键获取int列表,然后枚举列表。

或者您可以使用任何数组类型,例如

 Dictionary<string, int[]>