我目前正在使用此代码:
List<int> list = new List<int>();
list.Add(0);
list.Add(1);
list.Add(2);
list.Add(3);
color0 = list[1];
color1 = list[2];
color2 = list[3];
color3 = list[4];
有没有办法,这个列表可以在1个元素中使用2个参数?我的意思是:
List<int,int> list = new List<int,int>();
list.Add(0,3);
list.Add(1,8);
color0=list[1][2]; //output 3
color1=list[1][1]; //output 0
color2=list[2][2]; //output 8
color3=list[2][1]; //output 1
是否有可能实现类似的目标?
答案 0 :(得分:5)
您可以使用Tuple
:
var list = new List<Tuple<int, int>>();
list.Add(new Tuple<int, int>(1, 2));
为了便于使用,您可以创建一个扩展方法:
public static class Extensions
{
public static void Add(this List<Tuple<int, int>> list, int x, int y)
{
list.Add(new Tuple<int, int>(x, y));
}
}
然后您可以使用以下代码添加元素:
list.Add(1, 2);
访问项目:
var listItem = list[0]; // first item of list
int value = listItem.Item2; // second "column" of the item
答案 1 :(得分:1)
如果你有一个键值对,你也可以使用字典:
static void Main()
{
Dictionary<int, int> dictionary =
new Dictionary<int, int>();
dictionary.Add(0,3);
dictionary.Add(1,8);
dictionary.Add(2, 13);
dictionary.Add(3, -1);
}
答案 2 :(得分:0)
看起来您正在尝试使用像矩阵一样的列表。在这种情况下,您可能会发现Math.NET有用。