当前位置:  开发笔记 > 编程语言 > 正文

C#创建一个数组数组

如何解决《C#创建一个数组数组》经验,为你挑选了3个好方法。

我正在尝试创建一个将使用重复数据的数组数组,如下所示:

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

我无法让它发挥作用,我想知道我是否接近这个错误.

我正在尝试做的是创建一些方法来创建一个长列表,如果值,所以我可以重复地按特定顺序处理它们.就像是,

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().我是否完全错了,或者我错过了创建阵列数组的东西?



1> Sean..:

你需要做的是:

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

另一种方法是创建一个List类型:

List data=new List(){list1,list2,list3,list4};


如何创建具有固定大小的空数组?存储在阵列中的各个阵列可能不同,但主阵列中将有固定数量的阵列.

2> Suroot..:

问题是您尝试将列表中的元素定义为多个列表(而不是定义的多个整数).你应该定义这样的列表.

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



3> Noldorin..:

我想你可能正在寻找Jagged Arrays,它与C#中的多维数组(正如你在你的例子中使用的)不同.将声明中的数组转换为锯齿状数组应该可以使它工作.但是,您仍然需要使用两个循环来迭代2D锯齿状阵列中的所有项目.


这是一个关于锯齿状阵列的最新[MSDN文档](https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/arrays/jagged-arrays)
推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有