arrays数组

如何在C#中创建数组? 我已经阅读过有关创建锯齿状数组的内容,但我不确定这是不是最好的方法。 我想要实现这样的目标:

string[] myArray = {string[] myArray2, string[] myArray3} 

然后我可以像myArray.myArray2[0];那样访问它myArray.myArray2[0];

我知道代码不起作用,只是作为一个例子来解释我的意思。

谢谢。

数组或多维数组的简单示例如下:

 int[] a1 = { 1, 2, 3 }; int[] a2 = { 4, 5, 6 }; int[] a3 = { 7, 8, 9, 10, 11 }; int[] a4 = { 50, 58, 90, 91 }; int[][] arr = {a1, a2, a3, a4}; 

要测试数组:

 for (int i = 0; i < arr.Length; i++) { for (int j = 0; j < arr[i].Length; j++) { Console.WriteLine("\t" + arr[i][j].ToString()); } } 

你需要一个锯齿状arrays ,这是最好的解决方案

 int[][] j = new int[][] 

要么:

 string[][] jaggedArray = new string[3][]; jaggedArray[0] = new string[5]; jaggedArray[1] = new string[4]; jaggedArray[2] = new string[2] 

然后:

 jaggedArray[0][3] = "An Apple" jaggedArray[2][1] = "A Banana" 

等等…

注意:

在使用jaggedArray之前,必须初始化其元素。

在你的情况下,你可以将数组包装在另一个类中,但这似乎是非常多余的imho

您可以使用列表清单。 列表 – 它只是动态数组:

  var list = new List>(); list.Add(new List()); list[0].Add(1); Console.WriteLine(list[0][0]); 

这样做的方法是通过锯齿状数组:

 string[][] myArray; 

你的方式真的没有意义:

 myArray.myArray2[20] // what element is the first array pointing to? 

应该至少(如果可能的话)

 myArray[1].myArray2[20]; 

这显然比使用锯齿状数组的标准方式更糟糕: myArray[1][20];

我无法理解你的真正目标。 但作为选项,您可以使用dynamic类型来创建动态字典,如此处所述 (请参阅示例部分)。
但它更可能需要多维数组,如其他答案中所述