C#创build一个数组的数组

我想创build一个数组,将使用重复的数据,如下所示:

int[] list1 = new int[4] { 1, 2, 3, 4}; int[] list2 = new int[4] { 5, 6, 7, 8}; int[] list3 = new int[4] { 1, 3, 2, 1 }; int[] list4 = new int[4] { 5, 4, 3, 2 }; int[,] lists = new int[4, 4] { list1 , list2 , list3 , list4 }; 

我不能得到它的工作,我想知道如果我接近这个错误。

我试图做的是创build一些方法来创build一个长列表,如果值,所以我可以反复处理它们在一个特定的顺序。 就像是,

 int[,] lists = new int[90,4] { list1, list1, list3, list1, list2,(and so on)}; for (int i = 0,i < 90;++i) { doStuff(lists[i]); } 

并将数组按顺序传递给doStuff()。 我是否完全错误,或者我错过了创build数组的数组?

你需要做的是这样的:

 int[] list1 = new int[4] { 1, 2, 3, 4}; int[] list2 = new int[4] { 5, 6, 7, 8}; int[] list3 = new int[4] { 1, 3, 2, 1 }; int[] list4 = new int[4] { 5, 4, 3, 2 }; int[][] lists = new int[][] { list1 , list2 , list3 , list4 }; 

另一种方法是创build一个List<int[]>types:

 List<int[]> data=new List<int[]>(){list1,list2,list3,list4}; 

问题是你正试图将列表中的元素定义为多个列表(不是定义的多个整数)。 你应该像这样定义列表。

 int[,] list = new int[4,4] { {1,2,3,4}, {5,6,7,8}, {1,3,2,1}, {5,4,3,2}}; 

你也可以做

 int[] list1 = new int[4] { 1, 2, 3, 4}; int[] list2 = new int[4] { 5, 6, 7, 8}; int[] list3 = new int[4] { 1, 3, 2, 1 }; int[] list4 = new int[4] { 5, 4, 3, 2 }; int[,] lists = new int[4,4] { {list1[0],list1[1],list1[2],list1[3]}, {list2[0],list2[1],list2[2],list2[3]}, etc...}; 

我想你可能正在寻找Jagged Arrays ,它与C#中的multidimensional array不同(在你的例子中,你正在使用)。 将你的声明中的数组转换成锯齿状的数组应该可以工作。 但是,仍然需要使用两个循环遍历2D锯齿arrays中的所有项目。