using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 数组 { class Program { static void Main(string[] args) { //数组的声明 int[] iArr; string[] sArr; //数组的初始化 iArr = new int[4]; sArr = new string[2]; //同时声明和初始化数组 string[] str = new string[2]; //数组初始化器 int[] ii = new int[7] { 3, 4, 5, 6, 7, 8, 9 };//数组初始化器只能在声明数组变量时使用,不能在声明数组之后使用 int[] iii = new int[] { 3, 4, 5, 6, 7, 8, 9 };//用花括号初始化数组大小,可以不指定数组的大小,编译器会自动统计元素的个数 int[] iiii = { 1, 2, 3, 4, 5, 6, 7 };//更简化的方式 //访问数组 //通过索引访问 int[] myArr = new int[] { 4, 7, 11, 2 }; int v1 = myArr[0]; int v2 = myArr[1]; myArr[3] = 44;//更改数组中的值 //通过循环索引访问 for (int i = 0; i < myArr.Length; i++) { Console.WriteLine(myArr[i]); } //通过迭代器访问 foreach (var val in myArr) { Console.WriteLine(val); } //使用引用类型数组 //自定义类型的数组 Person[] myPerson = new Person[2]; //为数组的每个元素分配内存 myPerson[0] = new Person { FirstName = "aa", LastName = "bb" }; myPerson[1] = new Person { FirstName = "cc", LastName = "dd" }; //自定义类型数组使用初始化器 Person[] myPerson2 ={new Person{FirstName = "aa", LastName = "bb" }, new Person {FirstName = "cc", LastName = "dd"}}; //多维数组 //数组在初始化时候指定每一维的大小(也称为阶),声明数组之后就不能修改其阶数了 int[,] twoDim = new int[3, 3]; twoDim[0, 0] = 1; twoDim[0, 1] = 1; twoDim[0, 2] = 1; twoDim[1, 0] = 1; twoDim[1, 1] = 1; twoDim[1, 2] = 1; twoDim[2, 0] = 1; twoDim[2, 1] = 1; twoDim[2, 2] = 1; //使用数组初始化器初始二维数组 int[,] twoArr ={ {1,2,3}, {4,5,6}, {7,8,9} }; //使用数组初始化器初始三维数组 int[, ,] threeArr ={ {{1,2,3},{4,5,6}}, {{7,8,9},{10,11,12}}, {{13,14,15},{16,17,18}} }; Console.WriteLine(threeArr[1, 1, 2]); //锯齿数组:锯齿数组的大小设置比较灵活,每一行都可以有不同的大小 //初始化锯齿数组 int[][] jagged = new int[3][]; jagged[0] = new int[2] { 1, 2 }; jagged[1] = new int[6] { 3, 4, 5, 6, 7, 8 }; jagged[2] = new int[3] { 9, 10, 11 }; //迭代锯齿数组中的元素 for (int row = 0; row < jagged.Length; row++) { for (int element = 0; element < jagged[row].Length; element++) { Console.WriteLine("row:{0},element:{1},value:{2}", row, element, jagged[row][element]); } } Console.ReadKey(); } } public class Person { public string FirstName { get; set; } public string LastName { get; set; } public override string ToString() { return string.Format("{0},{1}", FirstName, LastName); } } }
原文地址:http://blog.csdn.net/yanlovehan/article/details/38584305