我想要一个包含2个Int32值的数组,比如说:
Int32 x
Int32 y
我想列出这些数组。
答案 0 :(得分:8)
List<int[]> l = new List<int[]>();
l.Add(new int[] { 1, 2 });
l.Add(new int[] { 3, 4 });
int a = l[1][0]; // a == 3
答案 1 :(得分:6)
听起来您正在尝试将数组转换为数据结构,而不是按顺序存储值。不要这样做。了解如何利用更高级的数据结构。
您提到的Point
类型的值为x
和y
。相反,一个班级怎么样?
class Point
{
public readonly int X;
public readonly int Y;
public Point( int x, int y )
{
X = x;
Y = y;
}
}
现在,您可以创建新类型的实例并将其添加到列表中,从而简化整个过程,同时确保不会出现问题并在数组中添加x
{ {1}}应该是。
y
无论如何,阅读如何在C#中创建自己的数据结构是一个好主意。学习如何以易于使用的方式正确存储数据有很多好处。
答案 2 :(得分:2)
关于您的想法,没有足够的信息。但这里是初始化Int32数组的通用列表的基本示例。我希望这有帮助
Int32 x = 1;
Int32 y = 2;
// example of declaring a list of int32 arrays
var list = new List<Int32[]> {
new Int32[] {x, y}
};
// accessing x
list[0][0] = 1;
// accessing y
list[0][1] = 1;
答案 3 :(得分:1)
使用仅包含两个int32的元组列表:
List<Tuple<int, int>> myList = new List<Tuple<int, int>>();
var item = new Tuple<int, int>(25, 3);
myList[0] = new Tuple<int, int>(20, 9);//acess to list items by index index
myList.Add(item);//insert item to collection
myList.IndexOf(item);//get the index of item
myList.Remove(item);//remove item from collection
在List<Tuple<int, int>>
或List<List<int, int>>
等第二个列表中使用List<int[]>
的好处是,您明确强制列表项只能是两个整数。
答案 4 :(得分:1)
嗯,有两种类型的数组。多维数组和锯齿状数组。你可以使用其中任何一种(更多的是http://msdn.microsoft.com/en-us/library/aa288453(v=vs.71).aspx上的差异)。
锯齿状阵列的一个例子:
Int32[][] = new Int32[] { new Int32[] {1,2}, new Int32[] {3,4}};
多维数组的示例:
Int32[,] = new Int32[,] {{1,2},{3,4}};
希望帮助清理一下。如果您的意思是实际列表,请查看其他答案。