1、参数数组/传递数组参数
C# 参数数组能用于传递未知数量的参数给函数,当声明一个方法时,不能确定要传递给函数的参数个数。就需要使用到。同时需要关键字params
// 定义如下函数,参数为一个不确定的 int 数组
public void AddElements(params int[] arr)
{
foreach(int i in arr)
{
Console.WriteLine("{0}", i);
}
}
// 调用时参数可以填多个 int 值
xxx.AddElements(512, 720, 250, 567, 889);
C# 传递数组给函数,可以通过指定不带索引的数组名称来给函数传递一个指向数组的指针。
// 定义如下函数,参数为一个不确定的 int 数组
public void printArr(int[] arr)
{
foreach(int i in arr)
{
Console.WriteLine("{0}", i);
}
}
// 调用时参数可以填多个 int 值
xxx.printArr(new int[]{512, 720, 250, 567, 889});
2、交错数组/多维数组
C# 交错数组指由数组组成的数组。是一维数组。初始化时需要指定一维长度。
C# 多维数组又称为矩形数组。初始化时需要同时确定每一维长度。
// ---------交错数组---------
// 初始化方式1
int[][] scores1 = new int[5][];
for (int i = 0; i < scores1.Length; i++)
{
scores1[i] = new int[4];
}
// 初始化方式2 *new int[2][]* 可以省略
int[][] scores2 = new int[2][]{new int[]{92,93,94},new int[]{85,66,87,88}};
// ---------多维数组---------
// 初始化方式1
int[,] scores3 = new int[2, 2];
// 初始化方式2 *new int[,]* 可以省略
int[,] scores4 = new int[,]{
{1,2},
{3,4}
};
注:多维和交错数组最直观区别在于Length不同,Length是获取所有维度的总的数据长度,交错数组属于一维,所以只有一维的长度。
3、Array 类
Array 类是 C# 中所有数组的基类
Array 基本属性:
1 IsFixedSize
获取一个值,该值指示数组是否带有固定大小。
2 IsReadOnly
获取一个值,该值指示数组是否只读。
3 Length
获取一个 32 位整数,该值表示所有维度的数组中的元素总数。
4 LongLength
获取一个 64 位整数,该值表示所有维度的数组中的元素总数。
5 Rank
获取数组的秩(维度)。
Array 常用的方法:
1 Clear
根据元素的类型,设置数组中某个范围的元素为零、为 false 或者为 null。
2 Copy(Array, Array, Int32)
从数组的第一个元素开始复制某个范围的元素到另一个数组的第一个元素位置。长度由一个 32 位整数指定。
3 CopyTo(Array, Int32)
从当前的一维数组中复制所有的元素到一个指定的一维数组的指定索引位置。索引由一个 32 位整数指定。
4 GetLength
获取一个 32 位整数,该值表示指定维度的数组中的元素总数。
5 GetLongLength
获取一个 64 位整数,该值表示指定维度的数组中的元素总数。
6 GetLowerBound
获取数组中指定维度的下界。
7 GetType
获取当前实例的类型。从对象(Object)继承。
8 GetUpperBound
获取数组中指定维度的上界。
9 GetValue(Int32)
获取一维数组中指定位置的值。索引由一个 32 位整数指定。
10 IndexOf(Array, Object)
搜索指定的对象,返回整个一维数组中第一次出现的索引。
11 Reverse(Array)
逆转整个一维数组中元素的顺序。
12 SetValue(Object, Int32)
给一维数组中指定位置的元素设置值。索引由一个 32 位整数指定。
13 Sort(Array)
使用数组的每个元素的 IComparable 实现来排序整个一维数组中的元素。
14 ToString
返回一个表示当前对象的字符串。从对象(Object)继承。