如何在C#?</int>中创建List <int>数组

时间:2011-02-01 15:37:59

标签: c# .net arrays list

我有一个问题,我需要一个arrayList数组。

例如,如果我们采用int的ArrayList数组,它将类似于:

int[]<List> myData = new int[2]<List>;

myData[0] = new List<int>();
myData[0].Add(1);
myData[0].Add(2);
myData[0].Add(3);


myData[1] = new List<int>();
myData[1].Add(4);
myData[1].Add(5);
myData[1].Add(6);

myData[0].Add(7);

我们如何在C#中实现如上所述的数据结构?

在C中,它就像一个LinkedList数组。我怎样才能在C#中做同样的事情?

5 个答案:

答案 0 :(得分:14)

var myData = new List<int>[]
{
    new List<int> { 1, 2, 3 },
    new List<int> { 4, 5, 6 }
};

答案 1 :(得分:10)

几乎和你试过的一样,只有第一行不正确:

List<int>[] myData = new List<int>[2];
myData[0] = new List<int>();
myData[0].Add(1);
myData[0].Add(2);
myData[0].Add(3);


myData[1] = new List<int>();
myData[1].Add(4);
myData[1].Add(5);
myData[1].Add(6);

myData[0].Add(7);

感谢madmik3,这里有一个链接,您可以在C#中阅读有关通用列表的内容: click me

另外,如果您想阅读有关数组的内容,例如Array类的静态复制方法here是其中的一些链接。

答案 2 :(得分:4)

var arraySize = 2;
var myArray = new List<Int32>[arraySize];


myArray[0] = new List<Int32>();
myArray[1] = new List<Int32>();
// And so on....

myArray[0].Add(5);

答案 3 :(得分:3)

我更喜欢名单,但这取决于你......

List<List<int>> lst = new List<List<int>>();

lst.Add(new List<int>());
lst.Add(new List<int>());

lst[0].Add(1);
lst[1].Add(1);
lst[1].Add(2);
lst[0].Add(5);

然后,如果你真的想要一个列表,那么所有人都使用一些linq。

lst.ToArray();

答案 4 :(得分:1)

你正试图采用具体类型List<int>并制作一个数组。
就像string变为new string[2]一样,List<int>变为new List<int>[2]

这将创建一个可以容纳两个List<int>的数组 但是,数组中的每个元素都以null开头 在使用之前,您需要将new List<int>()放入数组的每个插槽中。


但是,您应该使用List<List<int>>而不是列表数组。