Array类:提供创建、操作、搜索和排序数组的方法,因而在公共语言运行库中用作所有数组的基类。
1.数组的GetType方法;
int[] h=new int[10]; h.GetType()====== System.Int32[]
2. Array.IsArray 属性
typeof(Array).IsArray FALSE
typeof(h.GetType().IsArray) true
3.数组的复制 同类型或者不同类型的标准数组之间copy自动转换(拆箱,装箱)
1)Array .ConstrainedCopy 复制没成功,则目标数组不变
public static void ConstrainedCopy(
Array sourceArray,
int sourceIndex,
Array destinationArray,
int destinationIndex,
int length
)2)Array .Copy 方法
将一个 Array 的一部分元素复制到另一个 Array 中,并根据需要执行类型强制转换和装箱。
Copy(Array, Array, Int32/Int64) 将元数组从第一个索引开始,指定长度复制到目标数组
Copy(Array, Int32/Int64, Array, Int32/Int64, Int32/Int64) 从指定的源索引开始,指定长度,复制到目标数组中以目标索引为起始位置的地方。
3)Array派生类的CopyTo
public void CopyTo(
Array array,
int index
)int[] myArray={1,2,3,4,5,6,7,8,9,10};myArray.CopyTo(deArray, 0); //1,2,3,4,5,..,9,10 将源数组的所有元素复制到目标数组指定起始的位置。目标数组要有足够大的空间。
4.数组的清除 Array.Clear
静态方法 Clear ,Array.Clear(),并不是真正的删除值。
引用类型变为null,bool类型变为false,其余为0
5.查找值 Array.Exists,TrueForAll,Find,FindLast,FindAll
public static bool Exists<T>(
T[] array,
Predicate<T> match
)Predicate <T > 是对方法的委托,如果传递给它的对象与委托中定义的条件匹配,则该方法返回 true。 array 的元素被逐个传递给 Predicate <T >,找到一个匹配项时处理就会停止。
表示定义一组条件并确定指定对象是否符合这些条件的方法。
public delegate bool Predicate<T>(
T obj
)说明:在 C# 和 Visual Basic 中,不必显式创建 Predicate<string> 委托(在 Visual Basic 中为 Predicate(Of String))。这些语言会通过上下文推知正确的委托,并自动创建委托。
Array.TrueForAll,Exists
Find,FindLast,FindAll
6.调整数组大小
public static void Resize<T>(
ref T[] array,
int newSize
)
新长度大于旧长度,则其余都为数组类型的默认值
新长度小,则将新数组复制满,其余元素忽略
相等,则不做任何操作。
7. 数组排序sort 默认提供的是不稳定排序(相同大小的元素位置可能会改变)
原文:http://www.cnblogs.com/StudyLife/p/3634778.html