1、Array 类.NET Framework 4 其他版本 2(共 2)对本文的评价是有帮助 - 评价此主题提供创建、操作、搜索和排序数组的方法,因而在公共语言运行时中用作所有数组的基类。继承层次结构System.ObjectSystem.Array命名空间: System程序集: mscorlib(在 mscorlib.dll 中)语法C#C+F#VB复制SerializableAttributeComVisibleAttribute(true)public abstract class Array : ICloneable, IList, ICollection, IEnumerable,
2、IStructuralComparable, IStructuralEquatableArray 类型公开以下成员。属性名称 说明IsFixedSize 获取一个值,该值指示 Array 是否具有固定大小。IsReadOnly 获取一个值,该值指示 Array 是否为只读。IsSynchronized 获取一个值,该值指示是否同步对 Array 的访问(线程安全)。Length 获得一个 32 位整数,该整数表示 Array 的所有维数中元素的总数。LongLength 获得一个 64 位整数,该整数表示 Array 的所有维数中元素的总数。Rank 获取 Array 的秩(维数)。SyncR
3、oot 获取可用于同步 Array 访问的对象。页首方法名称 说明AsReadOnly 返回指定数组的只读包装。BinarySearch(Array, Object)使用由 Array 中每个元素和指定的对象实现的 IComparable 接口,在整个一维排序 Array 中搜索特定元素。BinarySearch(Array, Object, IComparer)使用指定的 IComparer 接口,在整个一维排序 Array 中搜索值。BinarySearch(Array, Int32, Int32, Object)使用由 Array 中每个元素和指定值实现的 IComparable 接口,
4、在一维排序 Array 的某个范围中搜索值。BinarySearch(Array, Int32, Int32, Object, IComparer)使用指定的 IComparer 接口,在一维排序 Array 的某个元素范围中搜索值。BinarySearch(T, T)使用由 Array 中每个元素和指定的对象实现的 IComparable 泛型接口,在整个一维排序 Array 中搜索特定元素。BinarySearch(T, T, IComparer)使用指定的 IComparer 泛型接口,在整个一维排序 Array 中搜索值。BinarySearch(T, Int32, Int32, T)
5、使用由 Array 中每个元素和指定值实现的 IComparable 泛型接口,在一维排序 Array 的某个元素范围中搜索值。BinarySearch(T, Int32, Int32, T, IComparer)使用指定的 IComparer 泛型接口,在一维排序 Array 的某个元素范围中搜索值。Clear 将 Array 中的一系列元素设置为零、false 或 null,具体取决于元素类型。Clone 创建 Array 的浅表副本。ConstrainedCopy从指定的源索引开始,复制 Array 中的一系列元素,将它们粘贴到另一 Array 中(从指定的目标索引开始)。保证在复制未成
6、功完成的情况下撤消所有更改。ConvertAll 将一种类型的数组转换为另一种类型的数组。Copy(Array, Array, Int32)从第一个元素开始复制 Array 中的一系列元素,将它们粘贴到另一 Array 中(从第一个元素开始)。长度指定为 32 位整数。Copy(Array, Array, Int64)从第一个元素开始复制 Array 中的一系列元素,将它们粘贴到另一 Array 中(从第一个元素开始)。长度指定为 64 位整数。Copy(Array, Int32, Array, Int32, Int32)从指定的源索引开始,复制 Array 中的一系列元素,将它们粘贴到另一
7、Array 中(从指定的目标索引开始)。长度和索引指定为 32 位整数。Copy(Array, Int64, Array, Int64, Int64)从指定的源索引开始,复制 Array 中的一系列元素,将它们粘贴到另一 Array 中(从指定的目标索引开始)。长度和索引指定为 64 位整数。CopyTo(Array, Int32)将当前一维 Array 的所有元素复制到指定的一维 Array 中(从指定的目标 Array 索引开始)。索引指定为 32 位整数。CopyTo(Array, Int64)将当前一维 Array 的所有元素复制到指定的一维 Array 中(从指定的目标 Array
8、索引开始)。索引指定为 64 位整数。CreateInstance(Type, Int32) 创建使用从零开始的索引、具有指定 Type 和长度的一维 Array。CreateInstance(Type, Int32)创建使用从零开始的索引、具有指定 Type 和维长的多维 Array。维的长度在一个 32 位整数数组中指定。CreateInstance(Type, Int64)创建使用从零开始的索引、具有指定 Type 和维长的多维 Array。维的长度在一个 64 位整数数组中指定。CreateInstance(Type, Int32, Int32)创建使用从零开始的索引、具有指定 Typ
9、e 和维长的二维 Array。CreateInstance(Type, Int32, Int32)创建具有指定下限、指定 Type 和维长的多维 Array。CreateInstance(Type, Int32, Int32, Int32)创建使用从零开始的索引、具有指定 Type 和维长的三维 Array。Equals(Object) 确定指定的 Object 是否等于当前的 Object。 (继承自 Object。)Exists 确定指定数组包含的元素是否与指定谓词定义的条件匹配。Finalize允许对象在“垃圾回收”回收之前尝试释放资源并执行其他清理操作。 (继承自 Object。)Fi
10、nd搜索与指定谓词所定义的条件相匹配的元素,并返回整个 Array 中的第一个匹配元素。FindAll 检索与指定谓词定义的条件匹配的所有元素。FindIndex(T, Predicate)搜索与指定谓词定义的条件匹配的元素,然后返回整个 Array 中第一个匹配项的从零开始的索引。FindIndex(T, Int32, Predicate)搜索与指定谓词所定义的条件相匹配的元素,并返回 Array 中从指定索引到最后一个元素的元素范围内第一个匹配项的从零开始的索引。FindIndex(T, Int32, Int32, Predicate)搜索与指定谓词所定义的条件相匹配的一个元素,并返回 A
11、rray 中从指定的索引开始、包含指定元素个数的元素范围内第一个匹配项的从零开始的索引。FindLast搜索与指定谓词所定义的条件相匹配的元素,并返回整个 Array 中的最后一个匹配元素。FindLastIndex(T, Predicate)搜索与指定谓词定义的条件匹配的元素,然后返回整个 Array 中最后一个匹配项的从零开始的索引。FindLastIndex(T, Int32, Predicate)搜索与由指定谓词定义的条件相匹配的元素,并返回 Array 中从第一个元素到指定索引的元素范围内最后一个匹配项的从零开始的索引。FindLastIndex(T, Int32, Int32, P
12、redicate)搜索与指定谓词所定义的条件相匹配的元素,并返回 Array 中包含指定元素个数、到指定索引结束的元素范围内最后一个匹配项的从零开始的索引。ForEach 对指定数组的每个元素执行指定操作。GetEnumerator 返回 Array 的 IEnumerator。GetHashCode 用作特定类型的哈希函数。 (继承自 Object。)GetLength 获取一个 32 位整数,该整数表示 Array 的指定维中的元素数。GetLongLength 获取一个 64 位整数,该整数表示 Array 的指定维中的元素数。GetLowerBound 获取 Array 中指定维度的下
13、限。GetType 获取当前实例的 Type。 (继承自 Object。)GetUpperBound 获取 Array 的指定维度的上限。GetValue(Int32) 获取一维 Array 中指定位置的值。索引指定为 32 位整数。GetValue(Int32) 获取多维 Array 中指定位置的值。索引指定为一个 32 位整数数组。GetValue(Int64) 获取一维 Array 中指定位置的值。索引指定为 64 位整数。GetValue(Int64) 获取多维 Array 中指定位置的值。索引指定为一个 64 位整数数组。GetValue(Int32, Int32) 获取二维 Arr
14、ay 中指定位置的值。索引指定为 32 位整数。GetValue(Int64, Int64) 获取二维 Array 中指定位置的值。索引指定为 64 位整数。GetValue(Int32, Int32, Int32)获取三维 Array 中指定位置的值。索引指定为 32 位整数。GetValue(Int64, Int64, Int64)获取三维 Array 中指定位置的值。索引指定为 64 位整数。IndexOf(Array, Object) 搜索指定的对象,并返回整个一维 Array 中第一个匹配项的索引。IndexOf(Array, Object, Int32)搜索指定的对象,并返回一维
15、Array 中从指定索引到最后一个元素这部分元素中第一个匹配项的索引。IndexOf(Array, Object, Int32, Int32)搜索指定的对象,并返回一维 Array 中从指定索引开始包含指定个元素的这部分元素中第一个匹配项的索引。IndexOf(T, T) 搜索指定的对象,并返回整个 Array 中第一个匹配项的索引。IndexOf(T, T, Int32)搜索指定的对象,并返回 Array 中从指定索引到最后一个元素这部分元素中第一个匹配项的索引。IndexOf(T, T, Int32, Int32)搜索指定的对象,并返回 Array 中从指定索引开始包含指定个元素的这部分元
16、素中第一个匹配项的索引。Initialize 通过调用值类型的默认构造函数,初始化值类型 Array 的每一个元素。LastIndexOf(Array, Object) 搜索指定的对象,并返回整个一维 Array 中最后一个匹配项的索引。LastIndexOf(Array, Object, Int32)搜索指定的对象,并返回一维 Array 中从第一个元素到指定索引这部分元素中最后一个匹配项的索引。LastIndexOf(Array, Object, Int32, Int32)搜索指定的对象,并返回一维 Array 中到指定索引为止包含指定个元素的这部分元素中最后一个匹配项的索引。LastIn
17、dexOf(T, T) 搜索指定的对象,并返回整个 Array 中最后一个匹配项的索引。LastIndexOf(T, T, Int32)搜索指定的对象,并返回 Array 中从第一个元素到指定索引这部分元素中最后一个匹配项的索引。LastIndexOf(T, T, Int32, Int32)搜索指定的对象,并返回 Array 中到指定索引为止包含指定个元素的这部分元素中最后一个匹配项的索引。MemberwiseClone 创建当前 Object 的浅表副本。 (继承自 Object。)Resize 将数组的元素数更改为指定的新大小。Reverse(Array) 反转整个一维 Array 中元素
18、的顺序。Reverse(Array, Int32, Int32) 反转一维 Array 中某部分元素的元素顺序。SetValue(Object, Int32) 将某值设置给一维 Array 中指定位置的元素。索引指定为 32 位整数。SetValue(Object, Int32) 将某值设置给多维 Array 中指定位置的元素。索引指定为一个 32 位整数数组。SetValue(Object, Int64) 将某值设置给一维 Array 中指定位置的元素。索引指定为 64 位整数。SetValue(Object, Int64) 将某值设置给多维 Array 中指定位置的元素。索引指定为一个 6
19、4 位整数数组。SetValue(Object, Int32, Int32)将某值设置给二维 Array 中指定位置的元素。索引指定为 32 位整数。SetValue(Object, Int64, Int64)将某值设置给二维 Array 中指定位置的元素。索引指定为 64 位整数。SetValue(Object, Int32, Int32, Int32)将某值设置给三维 Array 中指定位置的元素。索引指定为 32 位整数。SetValue(Object, Int64, Int64, Int64)将某值设置给三维 Array 中指定位置的元素。索引指定为 64 位整数。Sort(Array
20、)使用 Array 中每个元素的 IComparable 实现,对整个一维 Array 中的元素进行排序。Sort(Array, Array)基于第一个 Array 中的关键字,使用每个关键字的 IComparable 实现,对两个一维 Array 对象(一个包含关键字,另一个包含对应的项)进行排序。Sort(Array, IComparer) 使用指定的 IComparer,对一维 Array 中的元素进行排序。Sort(Array, Array, IComparer)基于第一个 Array 中的关键字,使用指定的 IComparer,对两个一维 Array 对象(一个包含关键字,另一个包含
21、对应的项)进行排序。Sort(Array, Int32, Int32)使用 Array 中每个元素的 IComparable 实现,对一维 Array 中某部分元素进行排序。Sort(Array, Array, Int32, 基于第一个 Array 中的关键字,使用每个Int32) 关键字的 IComparable 实现,对两个一维 Array 对象(一个包含关键字,另一个包含对应的项)的部分元素进行排序。Sort(Array, Int32, Int32, IComparer)使用指定的 IComparer,对一维 Array 的部分元素进行排序。Sort(Array, Array, Int3
22、2, Int32, IComparer)基于第一个 Array 中的关键字,使用指定的 IComparer,对两个一维 Array 对象(一个包含关键字,另一个包含对应的项)的部分元素进行排序。Sort(T)使用 Array 的每个元素的 IComparable 泛型接口实现,对整个 Array 中的元素进行排序。Sort(T, IComparer) 使用指定的 IComparer 泛型接口,对 Array 中的元素进行排序。Sort(T, Comparison) 使用指定的 Comparison 对 Array 中的元素进行排序。Sort(T, Int32, Int32)使用 Array 的
23、每个元素的 IComparable 泛型接口实现,对 Array 中某个元素范围内的元素进行排序。Sort(T, Int32, Int32, IComparer)使用指定的 IComparer 泛型接口,对 Array 中某个元素范围内的元素进行排序。Sort(TKey, TValue)基于第一个 Array 中的关键字,使用每个关键字的 IComparable 泛型接口实现,对两个 Array 对象(一个包含关键字,另一个包含对应的项)进行排序。Sort(TKey, TValue, IComparer)基于第一个 Array 中的关键字,使用指定的 IComparer 泛型接口,对两个 Ar
24、ray 对象(一个包含关键字,另一个包含对应的项)进行排序。Sort(TKey, TValue, Int32, Int32)基于第一个 Array 中的关键字,使用每个关键字的 IComparable 泛型接口实现,对两个 Array 对象(一个包含关键字,另一个包含对应的项)的部分元素进行排序。Sort(TKey, TValue, Int32, Int32, IComparer)基于第一个 Array 中的关键字,使用指定的 IComparer 泛型接口,对两个 Array 对象(一个包含关键字,另一个包含对应的项)的部分元素进行排序。ToString 返回表示当前对象的字符串。 (继承自
25、Object。)TrueForAll 确定数组中的每个元素是否都与指定谓词定义的条件匹配。页首扩展方法名称 说明AsParallel 启用查询的并行化。 (由 ParallelEnumerable 定义。)AsQueryable 将 IEnumerable 转换为 IQueryable。 (由 Queryable 定义。)Cast 将 IEnumerable 的元素转换为指定的类型。 (由 Enumerable 定义。)OfType 根据指定类型筛选 IEnumerable 的元素。 (由 Enumerable 定义。)页首显式接口实现名称 说明ICollection.CopyToIColle
26、ction.Count 获取 Array 中包含的元素数。ICollection.IsSynchronizedICollection.SyncRootIList.Add 向 IList 中添加项。IList.Clear 从 IList 中移除所有项。IList.Contains 确定某元素是否在 IList 中。IList.IndexOf 确定 IList 中特定项的索引。IList.Insert 将一个项插入指定索引处的 IList。IList.IsFixedSizeIList.IsReadOnlyIList.Item 获取或设置指定索引处的元素。IList.Remove 从 IList 中
27、移除特定对象的第一个匹配项。IList.RemoveAt 移除指定索引处的 IList 项。IStructuralComparable.CompareTo确定当前集合对象在排序顺序中的位置是位于另一个对象之前、之后还是与其位置相同。IStructuralEquatable.Equals 确定某个对象与当前实例是否相等。IStructuralEquatable.GetHashCode 返回当前实例的哈希代码。页首备注Array 类是支持数组的语言实现的基类。但是,只有系统和编译器可以从 Array 类显式派生。用户应当使用由语言提供的数组构造。一个元素就是 Array 中的一个值。Array 的
28、长度是它可包含的元素总数。Array 的秩是 Array 中的维数。Array 中维度的下限是 Array 中该维度的起始索引,多维 Array 的各个维度可以有不同的界限。数组最多可以有 32 个维。在 .NET Framework 2.0 版中,Array 类实现 System.Collections.Generic.IList、System.Collections.Generic.ICollection 和 System.Collections.Generic.IEnumerable 泛型接口。由于实现是在运行时提供给数组的,因而对于文档生成工具不可见。因此,泛型接口不会出现在 Arra
29、y 类的声明语法中,也不会有关于只能通过将数组强制转换为泛型接口类型(显式接口实现)才可访问的接口成员的参考主题。将某一数组强制转换为这三种接口之一时需要注意的关键一点是,添加、插入或移除元素的成员会引发 NotSupportedException。Type 对象提供有关数组类型声明的信息。具有相同数组类型的 Array 对象共享同一 Type 对象。Type.IsArray 和 Type.GetElementType 可能不返回所预期的 Array 形式的结果,因为如果某个数组被强制转换为 Array 类型,则结果是对象,而非数组。即,typeof(System.Array).IsArray
30、 返回 false,而 typeof(System.Array).GetElementType 返回 null。与大多数类不同,Array 提供 CreateInstance 方法,以便允许后期绑定访问,而不是提供公共构造函数。Array.Copy 方法不仅可在同一类型的数组之间复制元素,而且可在不同类型的标准数组之间复制元素;它会自动处理强制转换。有些方法(如 CreateInstance、Copy、CopyTo、GetValue 和 SetValue)提供接受 64 位整数作为参数的重载,以适应大容量数组。LongLength 和 GetLongLength 返回 64 位整数,表示数组的长度。不保证会对 Array 进行排序。在执行需要对 Array 进行排序的操作(如 BinarySearch)之前,必须对 Array 进行排序。不支持在本机代码中使用指针的 Array 对象,这种用法将对几种方法引发 NotSupportedException。