一、数组分类
数组可以简单分为3类:
- 1维数组
- 2维数组
- 交错数组
二、数组初始化
1.一维数组
int [] A = { 1,2,3,4 } 直接赋值
或者
int [] A = new int [4]{ 1,2,3,4 } new一下,并声明大小
2.二维数组
每行个数必须相同,适合规整的数据存储;
int[,] AA={ {1,2 }, { 4,5 }, {6,7 } }; 直接赋值
int[,] AA=new int[ , ] { {1,2 }, { 4,5 }, {6,7 } };new一下
int[,] AA=new int[3,2] { {1,2 }, { 4,5 }, {6,7 } };new 并同时声明大小
注意:没有声明子项长度时,数组每个子项的大小,必须和第一个子项相同。
3.交错数组
每项的个数不一定相同,自由度较高;
int[][] AAA = { new int[]{1}, new int[]{1,2}, new int[]{3,2} };
注意:交错数组和二维数组的区别是,交错数组并不限制子项的大小一致。
三、数组常用函数
int A[]的各种函数其实是由Array类来提供的,下面是Array的属性和方法:
函数名 | 方法 | 示例 |
Clear 清空 | Clear(Array array, int index, int length); 根据元素的类型,设置数组中某个范围的元素为零、为 false 或者为 null。 | Array.Clear(A,0,3); |
Copy 复制 | void Copy(Array sourceArray, Array destinationArray, int length); 从一个数组A复制某范围内地 数据到另一个数组B | Array.Copy(A, B, 3); |
GetLength 获得长度 | int GetLength(int dimension); 获得长度 | A.GetLength(); |
GetValue 获得某下标的值 | Object GetValue(Int32) 获取一维数组中指定位置的值。索引由一个 32 位整数指定。 | Object obj = A.GetValue(1) 等价于 A[1] |
SetValue 设置某下标的值 | void SetValue(object value, int index); 当前表示设置1维数组A[index]=value; void SetValue(object value, long index1, long index2); 当前表示设置2维数组A[index1][index2]=value; | A.SetValue(10,1); 等价于 A[1]=10 |
IndexOf 查找
| int IndexOf(Array array, object value); 第一个出现value数值的位置 | 略 |
int LastIndexOf(Array array, object value, int startIndex); 最好出现value数值的位置 | 略 | |
Sort 排序 | Sort(Array array) 将数组按照某个规则排序 | 下面详解 |
Reverse 翻转 | void Reverse(Array array); 将数组翻转 | 略 |
Resize 重设大小 | void Resize<T>(ref T[] array, int newSize); 重新设置数组大小 | 略 |
更多函数,请详见:class Array类
四、重点函数详解
(1)Sort排序:
void Sort(Array array); 默认排序
void Sort(Array array, int index, int length); 从index开始,截取length长度的数据排序
void Sort(Array array, IComparer comparer); 常规的int/string类型数据,自定义排序
void Sort<T>(T[] array, Comparison<T> comparison); 结构体、类等复杂的数据类型 排序,在comparison自定义排序规则
void Sort(Array keys, Array items); 两组数组一起排序,结果按照数组keys的默认排序来排。
void Sort(Array keys, Array items, IComparer comparer); 两组数组一起排序,结果按照数组keys的自定义排序来排。
(2)Resize重新设置大小:
void Resize<T>(ref T[] array, int newSize);
此方法分配指定大小的新数组,将元素从旧的数组复制到新,然后使用新替换旧的数组。array必须是一维数组。