1 数组是引用类型的变量,元素保存在托管堆中元素的引用保存在栈中。交错数组和矩形数组的使用格式如下:
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 namespace ArrayTest 7 { 8 class Program 9 { 10 static void Main(string[] args) 11 { 12 string[][] array=new string[2][]; 13 array[0] = new string[3] { "hello","world","!"}; 14 array[1] = new string[1] { "lzhq" }; 15 PrintArray(array); 16 string[,] array1 = new string[2, 3]; 17 for (int i = 0; i < array1.GetLength(0); i++) 18 { 19 for (int j = 0; j < array1.GetLength(1); j++) 20 { 21 array1[i, j] = string.Format("{0}{1}",i,j); 22 } 23 } 24 PrintArray(array1); 25 26 } 27 public static void PrintArray(string[][] array) 28 { 29 for (int i = 0; i < array.GetLength(0); i++) 30 { 31 for (int j = 0; j < array[i].GetLength(0); j++) 32 { 33 Console.Write("array[{0}][{1}]={2} ",i,j,array[i][j]); 34 } 35 Console.WriteLine(); 36 } 37 } 38 public static void PrintArray(string[,] array) 39 { 40 for (int i = 0; i < array.GetLength(0); i++) 41 { 42 for (int j = 0; j < array.GetLength(1); j++) 43 { 44 Console.Write("array[{0},{1}]={2}",i,j,array[i,j]); 45 } 46 Console.WriteLine(); 47 } 48 } 49 } 50 }
GetLength(int dimension)可以获取数组指定维数中的元素数
Length属性:可以获取数组所有维数中元素的总数
Rank属性:可以获取数组的维数
注意:数组声明中不允许出现任何关于维数的定义,长度只能出现在赋值运算符的右侧。只有在数组实例化的时候定义数组各维度的长度,此时数组大小的定义也是必须的必须提供。
交错数组是多个一维数组的组合,多个一维数组之间依靠指针相关联。矩形数组是完全的多维数组。
矩形三维数组的使用格式:
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 namespace ArrayTest 7 { 8 class Program 9 { 10 static void Main(string[] args) 11 { 12 string[][] array=new string[2][]; 13 array[0] = new string[3] { "hello","world","!"}; 14 array[1] = new string[1] { "lzhq" }; 15 PrintArray(array); 16 string[,] array1 = new string[2, 3]; 17 for (int i = 0; i < array1.GetLength(0); i++) 18 { 19 for (int j = 0; j < array1.GetLength(1); j++) 20 { 21 array1[i, j] = string.Format("{0}{1}",i,j); 22 } 23 } 24 PrintArray(array1); 25 string[, ,] array2 = new string[2, 3, 4]; 26 for (int i = 0; i < array2.GetLength(0); i++) 27 { 28 for (int j = 0; j < array2.GetLength(1); j++) 29 { 30 for (int k = 0; k < array2.GetLength(2); k++) 31 { 32 array2[i, j, k] = string.Format("{0}{1}{2}",i,j,k); 33 } 34 } 35 } 36 PrintArray(array2); 37 38 39 } 40 public static void PrintArray(string[][] array) 41 { 42 for (int i = 0; i < array.GetLength(0); i++) 43 { 44 for (int j = 0; j < array[i].GetLength(0); j++) 45 { 46 Console.Write("array[{0}][{1}]={2} ",i,j,array[i][j]); 47 } 48 Console.WriteLine(); 49 } 50 } 51 public static void PrintArray(string[,] array) 52 { 53 for (int i = 0; i < array.GetLength(0); i++) 54 { 55 for (int j = 0; j < array.GetLength(1); j++) 56 { 57 Console.Write("array[{0},{1}]={2}",i,j,array[i,j]); 58 } 59 Console.WriteLine(); 60 } 61 } 62 public static void PrintArray(string[, ,] array) 63 { 64 for (int i = 0; i < array.GetLength(0); i++) 65 { 66 for (int j = 0; j < array.GetLength(1); j++) 67 { 68 for (int k = 0; k < array.GetLength(2); k++) 69 { 70 Console.Write("array[{0},{1},{2}]={3} ",i,j,k,array[i,j,k]); 71 } 72 } 73 } 74 } 75 } 76 }
所有数组类型的变量不管是一维数组,矩形数组还是交错数组,所有的数组都可以使用其索引访问其中的元素,都可以用索引定位到数组中的元素。