无涯教程-C# - 数组类

93 阅读3分钟

C#提供了一个Array类来处理与数组相关的操作。它提供了创建、操作、搜索和排序数组元素的方法。此类作为.NET编程环境中所有数组的基类工作。

C#数组类签名

[SerializableAttribute]
[ComVisibleAttribute(true)]
public abstract class Array : ICloneable, IList, ICollection, 
IEnumerable, IStructuralComparable, IStructuralEquatable

注意:在C#中,数组不是集合的一部分,但被视为集合,因为它基于ILIST接口。

C#数组属性

Property Description
IsFixedSize 它用于获取指示 Array 是否具有固定大小的值。
IsReadOnly 它用于检查 Array 是否为只读。
IsSynchronized 它用于检查对 Array 的访问是否同步。
Length 它用于获取 Array 的所有维度中的元素总数。
LongLength 它用于获取一个 64 位整数,该整数表示 Array 的所有维度中的元素总数。
Rank 它用于获取 Array 的等级(维数)。
SyncRoot 它用于获取可用于同步访问 Array 的对象。

C#数组方法

Method Description
AsReadOnly<T>(T[]) 它返回指定数组的只读包装器。
BinarySearch(Array,Int32,Int32,Object) 它用于在一维排序数组中搜索一系列元素以获取值。
BinarySearch(Array,Object) 它用于在整个一维排序数组中搜索特定元素。
Clear(Array,Int32,Int32) 它用于将数组中的一系列元素设置为默认值。
Clone() 它用于创建 Array 的浅表副本。
Copy(Array,Array,Int32) 它用于通过指定起始索引将数组的元素复制到另一个数组中。
CopyTo(Array,Int32) 它将当前一维数组的所有元素复制到从指定目标数组索引开始的指定一维数组
CreateInstance(Type,Int32) 它用于创建指定类型和长度的一维数组。
Empty<T>() 它用于返回一个空数组。
Finalize() 它用于释放资源和执行清理操作。
Find<T>(T[],Predicate<T>) 它用于搜索与指定谓词定义的条件匹配的元素。
IndexOf(Array,Object) 它用于搜索指定的对象并返回其在一维数组中第一次出现的索引。
Initialize() 它用于通过调用值类型的默认构造函数来初始化值类型数组的每个元素。
Reverse(Array) 它用于反转整个一维数组中元素的顺序。
Sort(Array) 它用于对整个一维数组中的元素进行排序。
ToString() 它用于返回表示当前对象的字符串。

C#数组示例

using System;
namespace CSharpProgram
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建数组
            int[] arr = new int[6] { 5, 8, 9, 25, 0, 7 };
            // 创建一个空数组
            int[] arr2 = new int[6];
            // 显示数组的长度
            Console.WriteLine("length of first array: "+arr.Length);
            // 排序数组
            Array.Sort(arr);
            Console.Write("First array elements: ");
            // 显示排序数组
            PrintArray(arr);
            // 查找数组元素的索引
            Console.WriteLine("\nIndex position of 25 is "+Array.IndexOf(arr,25));
            // 将第一个数组处理为空数组
            Array.Copy(arr, arr2, arr.Length);
            Console.Write("Second array elements: ");
            // 显示第二个数组
            PrintArray(arr2);
            Array.Reverse(arr);
            Console.Write("\nFirst Array elements in reverse order: ");
            PrintArray(arr);
        }
        // 用于迭代数组元素的用户定义方法
        static void PrintArray(int[] arr)
        {
            foreach (Object elem in arr)
            {
                Console.Write(elem+" ");
            }
        }
    }
}

输出:

length of first array: 6
First array elements: 0 5 7 8 9 25
Index position of 25 is 5
Second array elements: 0 5 7 8 9 25
First Array elements in reverse order: 25 9 8 7 5 0

参考链接

www.learnfk.com/csharp/c-sh…