C#中的Array-数组2009-07-02 本站 L小凤一. Array-数组在C#中定义一个数组的方法一般为:Data Type [] Array=new DataType [Size];其中Data Type可以是基本数据类型和对象类型数据,Size是数组元素的个数.例子定义一个int类型的数据来表示一个班上的人数int [] classNum=new int[20];数组的属性有:
属性 | 意义 |
public virtual bool IsFixedSize | 数组的长度是否是固定的 |
public virtual bool IsReadOnly | 数组是否是只读型 |
public virtual bool IsSynchronized | 在多线程环境下是否安全 |
public int Length | 数组元素的个数 |
public int Rank | 数组的维数 |
public virtual object SyncRoot | 同步访问数组对象 |
数组对象的方法有静态方法和实例方法;public static int BinarySearch(Array a, object v);数组a必须是一维而且排好序的;此方法的结果是返回a中与v匹配的第一个元素的索引号.如果没有匹配元素则返回一个负数-1;public static int BinarySearch(Array a, object v, IComparer comp);与前面的方法相似,区别在于comp;用于比较符号;public static int BinarySearch(Array a, int start,int count, object v)从a中start开始的count个元素中查询与v匹配的元素的一个索引号.public static int BinarySearch(Array a, int start,int count, object v,IComparer comp)与上一个方法相似.区别在于用比较法补偿;public static void Clear(Array a, int start, int count)将数组a中从start开始的从count个元素置零;public virtual object Clone()Copy这个数组;public static void Copy(Array source,Array dest, int count)将source中的count个元素赋值到数组dest中.;public virtual void CopyTo(Array dest, int start)将调用此方法的数组对象中的start个元素赋值到dest中.public static Array CreateInstance(Type t, int size)创建一个有Size个元素的数组,其中元素类型是t;public static Array CreateInstance(Type t, int size1, int size2)创建一个二维数组,数组的参数是[size1][size2];数组元素的类型是t;public static Array CreateInstance(Type t, int size1,int size2, int size3)创建一个三维数组,元素类型是T,同创建二维数组一样.;public static Array CreateInstance(Type t, int[ ] sizes)创建一个参数sizes维的数组,元素类型是t;public static Array CreateInstance(Type t, int[ ] sizes,int[ ] startIndexes)创建一个多维数组,数组维数是sizes,每一个元素的数据类型是t.数组中每一维数组的开始索引号是startIndexes;public override bool Equals(object v)判断v是否与调用此方法的数组对象是否相同.public virtual IEnumerator GetEnumerator()返回数组的枚举对象public int GetLength(int dim)返回多维数组第dim维的元素的个数public override int GetHashCode()返回数组的哈希码;public int GetUpperBound(int dim)返回多维数组第dim维的元素的最后一个索引值public object GetValue(int index) 返回一维数组第index个元素的值public object GetValue(int idx1, int idx2)和public object GetValue(int idx1, int idx2,int idx3)分别获取2维和3维数组的某个特殊元素的值.;public static int IndexOf(Array a, object v) 返回a中与v的值一样的第一元素的索引值;public static int IndexOf(Array a, object v,int start)从a中第start个元素开始,返回与v的值一样的元素位置;public static int IndexOf(Array a, object v,int start, int count)从a中第start个元素开始的count个元素中,返回与v的值一样的元素位置;public static int LastIndexOf(Array a, object v,int start, int count)在a中得第start个元素开始的count个元素中查找与v相等的元素的索引号public static void Reverse(Array a) 将数组a所有元素做个逆转;public void SetValue(object v, int index) 设置数组对象的第index个元素的值为v;对象二维和三维数组有相似的函数;public void SetValue(object v, int idx1, int idx2)和public void SetValue(object v, int idx1,int idx2, int idx3)public static void Sort(Array a) 对数组a进行排序;二. 定义和初始化一个数组int[] myIntArray; myIntArray = new int[4]; 利用数组的函数IndexOf() and LastIndexOf()来获取数组中某一个特定元素的位置;
int[] intArray = {1, 2, 1, 3};Console.WriteLine("intArray:");for (int i = 0; i < intArray.Length; i++){Console.WriteLine("intArray[" + i + "] = " +intArray[i]);}int index = Array.IndexOf(intArray, 1);Console.WriteLine("Array.IndexOf(intArray, 1) = " + index);index = Array.LastIndexOf(intArray, 1);Console.WriteLine("Array.LastIndexOf(intArray, 1) = " + index); |
输出结果是

在下一节将用实际数据来讲解每个函数.