一. 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);
輸出結果是
在下一節將用實際數據來講解每個函數.