数组类是所有数组的基类,定义在 System 命名空间中。C# 数组类提供了用于创建、操作、排序和搜索数组的函数。
C# 数组类具有以下属性。
| 属性 | 用法 |
|---|---|
| IsFixedSize | 它根据数组是否为固定大小来获取值。 |
| IsReadOnly | 根据数组是否为只读来获取值。 |
| Length | 获取一个 32 位整数,表示所有维度中的数组元素。 |
| LongLength | 获取一个 64 位整数,表示所有维度中的数组元素。 |
| Rank | 它获取数组中的总维度数。 |
让我们看一个代码示例,演示数组类的属性。
using System;
class Program
{
static void Main(string[] args)
{
int[] arr = new int[] { 2, 8, 9, 4, 6 };
if (arr.IsFixedSize)
{
Console.WriteLine("Array is of fixed size");
Console.WriteLine("Array Size :" + arr.Length);
Console.WriteLine("Rank :" + arr.Rank);
}
if (arr.IsReadOnly)
Console.WriteLine("Array is read-only");
else
Console.WriteLine("Array is not read-only");
}
}
输出

分析
arr 是一个用一些值初始化的整数数组。
arr.IsFixedSize 返回 true,因为它已给定固定数量的值。
arr.Length 将给出 C# 数组中的元素总数,即 5。
arr.Rank 将给出维度数,在此示例中为 1。
C# 数组类函数
DotNet 框架在 Array 类中提供了各种方法。让我们看一些最常用的数组函数。
Create Instance(<数据类型> elementtype, int length)
CreateInstance() 用于构造一个数组。
在 C# 中创建一维数组的语法
public static Array CreateInstance(typeof(<element type>), int length)
其中 typeof 是关键字,element type 是要创建的数组的类型。length 是数组的大小。
创建二维数组的语法。
public static Array CreateInstance(typeof(<element type>), int length1, int length2)
element type 是要创建的数组的类型
length1 是数组的第一个维度
length2 是数组的第二个维度
GetLowerBound(int dimension)
GetLowerBound() 获取数组中指定维度的第一个元素的索引。C# 数组函数语法如下所示。
GetLowerBound(int dimension)
GetUpperBound(int dimension)
GetUpperBound() 获取数组中指定维度的最后一个元素的索引。此数组函数的语法是
GetUpperBound(int dimension)
GetValue(int32)
它获取一维数组中指定位置的值。指定的索引是一个 32 位整数。
GetValue(int32, int32)
它获取二维数组中指定位置的值。指定的索引是 32 位整数。
C# Sort(Array) 函数
静态方法 Sort() 用于对数组中的项进行排序。
Array.Sort() 有许多重载形式。最简单的形式是只接受一个参数,即要排序的数组。
SetValue(object, int32)
此数组函数用于将值设置到一维数组中指定位置的元素。
Reverse(Array)
Reverse() 将接受一个数组作为参数,并反转一维数组中项的序列。
Clear()
此 C# 数组函数删除其所有项,并将其长度设置为零。
Initialize()
此方法用于通过调用值类型的默认构造函数来初始化值类型数组的元素。
Finalize()
此数组函数允许对象在垃圾回收之前释放其资源以执行清理等操作。
Copy(源数组, 目标数组, int length)
此 C# 数组函数将从源数组复制指定长度的元素到目标数组。
目标数组中的维度数必须等于源数组中的维度数。此外,目标数组必须已经维度化。并且有足够的元素来容纳从源数组复制的数据。
C# 数组函数示例
在此示例中,我们演示了几个数组函数,例如创建实例、设置值、复制、排序和反转。
using System;
class Program
{
static void Array1(Array ar)
{
foreach (int i in ar)
{
Console.Write(i + " ");
}
}
static void Main(string[] args)
{
Array arr = Array.CreateInstance(typeof(int), 6);
arr.SetValue(8, 0);
arr.SetValue(25, 1);
arr.SetValue(64, 2);
arr.SetValue(5, 3);
arr.SetValue(10, 4);
arr.SetValue(18, 5);
Console.WriteLine("Elements in array arr are: ");
foreach(int j in arr)
Console.Write(j + " ");
Array arr1 = Array.CreateInstance(typeof(int), 6);
Array.Sort(arr);
Console.WriteLine("\nElements of array arr after sorting: ");
Array1(arr);
Array.Copy(arr, arr1, arr.Length);
Console.WriteLine("\nElements after copy from arr to array arr1 are: ");
Array1(arr1);
Array.Reverse(arr);
Console.WriteLine("\nElements of array arr in reverse order: ");
Array1(arr);
Console.ReadKey();
}
}

分析
通过使用 CreateInstance() 方法,创建了一个类型为整数、大小为 6 的数组 arr。
使用 SetValue() 方法,arr 初始化为 6 个整数类型的元素。
使用 foreach 循环将 arr 的元素打印到控制台。
我们在 Main() 方法之外声明了一个名为 Array1 的方法,它有一个类型为 Array 的参数。
此方法使用 foreach 循环定义,以打印作为参数传递给它的数组中的所有元素。
Sort(arr) 将对 arr 中的所有元素进行排序。
Array1(arr),此处 arr 作为参数传递给 Array1() 方法,以便它将打印 arr 中的所有元素。
Array.Copy(arr, arr1, arr.Length)
此 C# 数组函数将 arr 的所有元素复制到 arr1。现在,arr1 包含从 arr 复制的元素。
Array1(arr1),此处 arr1 作为参数传递给 Array1() 方法,以便它将打印 arr1 中的所有元素。
Reverse(arr) – 它将反转 arr 中所有元素的序列。现在 arr 中包含反转顺序的项。
Array1(arr),此处 arr 作为参数传递给 Array1() 方法,以便它将打印 arr 中的所有元素。