我有一个问题,我需要一个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#中做同样的事情?
答案 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>>
而不是列表数组。