如何列出一组int的列表?

时间:2011-06-25 02:38:13

标签: c# arrays list data-structures

我想要一个包含2个Int32值的数组,比如说:

 Int32 x
 Int32 y

我想列出这些数组。

  • 如何声明和初始化此数组和列表?
  • 我填写后如何访问列表成员?

5 个答案:

答案 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类型的值为xy。相反,一个班级怎么样?

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}};

希望帮助清理一下。如果您的意思是实际列表,请查看其他答案。