数组是一种包含若干变量的数据结构,这些变量都可以通过计算索引进行访问。数组中的数组的元素具有相同的类型。 数组有一个“秩”。数组的秩又称为数组的维度。“秩”为 1 的数组称为一维数组。“秩”大于 1 的数组称为多维数组。维度大小确定的多维数组通常称为两维数组、三维数组等。声明数组 声明数组时,方括号 ([]) 必须跟在类型后面,而不是标识符后面。在 C# 中,将方括号放在标识符后是不合法的语法。C# 支持一维数组、多维数组(矩形数组)和数组的数组(交错的数组)。一维数组: int [] arrayname;多维数组: int [,] arrayname;数组的数组(交错的): int [][] arrayname ; 声明数组并不实际创建它们。在 C# 中,数组是对象,必须进行实例化。示例: using System; class TestArray { public static void Main() { //声明一个整型一维数组的引用,变且在堆中分配连续5个整型变量的空间。 int[] numbers = new int[5]; // 声明一个二维字符串数组的引用 string[,] names = new string[5,4]; // 数组的数组,相当声明了包含5个byte型一维数组的引用变量的一维数组长度为5 byte[][] scores = new byte[5][]; //为每个btye型一维数组实例化 for (int i = 0; i < scores.Length; i++) { scores[i] = new byte[i+3]; //非矩形的 } for (int i = 0; i < scores.Length; i++) { Console.WriteLine("Length of row {0} is {1}", i, scores[i].Length); } }} 初始化数组C# 通过将初始值括在大括号 ( {} ) 内为在声明时初始化数组提供了简单而直接了当的方法。下面的示例展示初始化不同类型的数组的各种方法。一维数组 int [] numbers = new int [ 5 ] {1, 2, 3, 4, 5} ; string [] names = new string [ 3 ] {"Matt", "Joanne", "Robert"} ;可省略数组的大小,如下所示: int [] numbers = new int [] {1, 2, 3, 4, 5} ; string [] names = new string [] {"Matt", "Joanne", "Robert"} ;如果提供了初始值设定项,则还可以省略 new 运算符,如下所示: int [] numbers = {1, 2, 3, 4, 5} ; string [] names = {"Matt", "Joanne", "Robert"} ;多维数组 int [,] numbers = new int [ 3 , 2 ] { {1, 2}, {3, 4}, {5, 6} } ; string [,] siblings = new string [ 2 , 2 ] { {"Mike","Amy"}, {"Mary","Albert"} } ;可省略数组的大小,如下所示: int [,] numbers = new int [,] { {1, 2}, {3, 4}, {5, 6} } ; string [,] siblings = new string [,] { {"Mike","Amy"}, {"Mary","Albert"} } ;如果提供了初始值设定项,则还可以省略 new 运算符,如下所示: int [,] numbers = { {1, 2}, {3, 4}, {5, 6} } ; string [,] siblings = { {"Mike", "Amy"}, {"Mary", "Albert"} } ;交错的数组(数组的数组)可以像下例所示那样初始化交错的数组: int [][] numbers = new int [ 2 ][] { new int[] {2,3,4}, new int[] {5,6,7,8,9} } ;可省略第一个数组的大小,如下所示: int [][] numbers = new int [][] { new int[] {2,3,4}, new int[] {5,6,7,8,9} } ;-或- int [][] numbers = { new int[] {2,3,4}, new int[] {5,6,7,8,9} } ;访问数组成员访问数组成员可以直接进行,类似于在 C / C ++ 中访问数组成员。例如,下面的代码创建一个名为 numbers 的数组,然后向该数组的第五个元素赋以 5 : int [] numbers = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0} ;numbers[ 4 ] = 5 ;下面的代码声明一个多维数组,并向位于 [ 1 , 1 ] 的成员赋以 5 : int [,] numbers = { {1, 2}, {3, 4}, {5, 6}, {7, 8}, {9, 10} } ;numbers[ 1 , 1 ] = 5 ;下面声明一个一维交错数组,它包含两个元素。第一个元素是两个整数的数组,第二个元素是三个整数的数组: int [][] numbers = new int [][] { new int[] {1, 2}, new int[] {3, 4, 5}} ;下面的语句向第一个数组的第一个元素赋以 58 ,向第二个数组的第二个元素赋以 667 :numbers[ 0 ][ 0 ] = 58 ;numbers[ 1 ][ 1 ] = 667 ;对数组使用 foreach C# 还提供 foreach 语句。该语句提供一种简单、明了的方法来循环访问数组的元素。例如,下面的代码创建一个名为 numbers 的数组,并用 foreach 语句循环访问该数组: int [] numbers = {4, 5, 6, 1, 2, 3, -2, -1, 0} ; foreach ( int i in numbers) { System.Console.WriteLine(i);} 由于有了多维数组,可以使用相同方法来循环访问元素,例如: int [,] numbers = new int [ 3 , 2 ] {{9, 99}, {3, 33}, {5, 55}} ; foreach ( int i in numbers) { Console.Write("{0} ", i);} 该示例的输出为: 9 99 3 33 5 55