数组是一种数据结构,它可以包含同一类型的多个元素,C#中的数组元素从零开始。
数组可分为:简单数组、多维数组和锯齿数组。
1、声明及初始化
int [] x = new int[5];
声明了数组后,就必须为数组分配内存,以保存数组的所以元素。数组是引用类型,所以必须给它分配推上的内存。使用new运算符,指定数组中元素的类型和数量来初始化数组的变量。
1. 使用数组初始化器为数组的每个元素赋值
int [] x = new int[5]{10,6,7,15,8};
2. 不指定数组的大小
int [] x = new int[]{10,6,7,15,8};
3. 简化的形式
int [] x = {10,6,7,15,8};
2、访问数组元素
1. 使用索引器传递元素编号访问数组
int [] x = {10,6,7,15,8};Console.WriteLine(x[0]); // 10Console.WriteLine(x[1]); // 6
2. 使用For循环遍历
int[] x = { 10, 6, 7, 15, 8 };for (int i = 0; i < x.Length; i++){ Console.Write(x[i]+" "); // 10 6 7 15 8}
3. 使用foreach循环遍历
int[] x = { 10, 6, 7, 15, 8 };foreach (var i in x){ Console.Write(i + " "); // 10 6 7 15 8 }
4. 使用Array.Sort排序
int[] x = { 10, 6, 7, 15, 8 };Array.Sort(x); foreach (var i in x){ Console.Write(i + " "); // 6 7 8 10 15}
5. 冒泡排序
int[] array = { 10, 6, 7, 15, 8 };int temp = 0;for (int i = 0; i < array.Length - 1; i++){ for (int j = i + 1; j < array.Length; j++) { if (array[j] < array[i]) { temp = array[i]; array[i] = array[j]; array[j] = temp; } }}foreach (var i in array){ Console.Write(i + " "); // 6 7 8 10 15}
6. 数组求差集、交集、并集
int[] x = { 10, 6, 7, 15, 8 };int[] y = { 20, 9, 15, 2, 7 };// 差集var z1 = x.Except(y);foreach (var i in z1){ Console.Write(i + " "); // 10 6 8}Console.WriteLine("");// 交集var z2 = x.Intersect(y);foreach (var i in z2){ Console.Write(i + " "); // 7 15 }Console.WriteLine("");// 并集var z3 = x.Union(y);foreach (var i in z3){ Console.Write(i + " "); // 10 6 7 15 8 20 9 2 }
多维数组是用两个或多个整数来索引。
1. 二维数组声明及初始化
int[,] y1 = new int[2, 2];y[0, 0] = 1;y[0, 1] = 2;y[1, 0] = 3;y[1, 1] = 4;
int[,] y2 = { { 1, 2 }, { 3, 4 } };
2. 三维数组
int[,,] y3 ={ {{1, 2}, {3, 4}}, {{5, 6}, {7, 8}}, {{9, 10}, {11, 12}},};
二维数组是一个完整的矩形,而锯齿数组大大小设置比较灵活,在锯齿数组中,每一行都可以有不同的大小。
int[][] j = new int[3][];j[0] = new int[2] { 1, 2 };j[1] = new int[5] { 3, 4, 5, 6, 7 };j[2] = new int[3] { 8, 9, 10 };
新闻热点
疑难解答