C# 数组之int[]

一、数组分类

  数组可以简单分为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必须是一维数组。

    • 如果array是null,此方法具有指定大小创建一个新数组。
    • 如果newSize大于Length的旧的数组中,分配一个新数组,且所有元素从旧的数组都复制到新。 
    • 如果newSize是小于Length的旧的数组中,分配一个新数组和元素从旧数组复制到新直到填充新的; 旧的数组中的元素的其余部分将被忽略。 
    • 如果newSize等同于Length的旧的数组,此方法不执行任何操作。

 

 

 

posted @ 2018-08-07 14:47  激情1995  阅读(3283)  评论(0编辑  收藏  举报