C# 如何在字典中创建两个以上的参数?

C# 如何在字典中创建两个以上的参数?,c#,.net,dictionary,C#,.net,Dictionary,我正在尝试构建一个简单的应用程序,主要的一点是我必须使用字典。我的字典中会有这样的数据: states.Add("my_key", new MyData { Number1 = 1, Number2 = 2, Number3 = 3, Number4 = 4}); (钥匙,号码,号码,号码,号码) 下面是实现我的数据的代码 Dictionary<string,int,int,int,int> states = new Dictionary<string,int,int,i

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

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

下面是实现我的数据的代码

 Dictionary<string,int,int,int,int> states = new  Dictionary<string,int,int,int,int>();
Dictionary states=newdictionary();
我已经查阅了很多资料,想知道如何解决这个问题,但我找不到。 我得到一个错误,它必须有两个参数


您能给我一个解决方案,使一个字典可以容纳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>();
foreach(var kvp in states)
{
    var key = kvp.Key;

    var data = kvp.Value;

    var number1 = data.Number1;
    //...
}
并将其用作字典值类型,如下所示:

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>();
foreach(var kvp in states)
{
    var key = kvp.Key;

    var data = kvp.Value;

    var number1 = data.Number1;
    //...
}
要访问特定密钥的数据,可以使用:

MyData data = states["my_key"];

int number1 = data.Number1;
//...
要迭代所有数据,可以使用如下简单的
foreach

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>();
foreach(var kvp in states)
{
    var key = kvp.Key;

    var data = kvp.Value;

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

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

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

 Dictionary<string, List<int>>
字典
通过这种方式,您可以使用字符串键获取int列表,然后枚举该列表

也可以使用任何数组类型,例如

 Dictionary<string, int[]>
字典

为什么不创建一个包含4个数字的类呢?我认为在我的逻辑应用程序中很难实现,我已经尝试了很多次,因此我现在尝试使用dictionaryso,如何迭代所有数据以及如何访问具有键的数据:my_键:您可以使用
Tuple
类型,而不是像
MyData
这样的自定义类。例如,在您的案例中,Tuple。您可以通过
Item1
Item2
等访问这些值。创建实例的最简单方法是静态
元组-method@Koopakiller对。我在回答中提到了基于
Tuple
的选项,但没有给出示例。