|
C# 本隨筆為個人復(fù)習(xí)鞏固知識用,多從書上總結(jié)與理解歸納得來,如有錯誤麻煩指正
數(shù)據(jù)簡單來說就是將一連串相同類型的的數(shù)據(jù)按順序保存起來的容器。數(shù)組中的數(shù)值類型默認(rèn)為0,引用類型默認(rèn)為null。數(shù)組的索引從0開始,具有n個元素的數(shù)組的縮影為從0~n-1。 1.數(shù)組的創(chuàng)建 //聲明一個用于存儲int類型的一維數(shù)組并賦值 int[] array1 = new int[2]; array1[0] = 1; array1[1] = 2; //聲明同時賦值 int[] array2 = new int[] { 1, 9, 5, 7, 3 }; //另一種聲明方式 int[] array3 = { 1, 2, 3, 4, 5, 6 }; //聲明二維數(shù)組 int[,] multiArray = new int[2, 3]; multiArray[0, 0] = 1; multiArray[0, 1] = 2; //聲明同時賦值 int[,] multiArray2 = { { 1, 2, 3 }, { 4, 5, 6 } };
2.數(shù)組的遍歷 數(shù)組是從抽象類array派生的引用類型。由于此類型實現(xiàn)類IEnumerable接口的IEnumerator,因此可以對C#中所有數(shù)組使用foreach迭(die)代。 打字的時候還有些字打不出來(一直以來都讀錯了),我的輸入法可以用分號+x的形式開手寫,遇到一些情況可以考慮一下。 int[] array = new int[] { 1, 2, 3, 4, 5 }; //用for遍歷 for(int i = 0; i < 5; i++) { Console.WriteLine(array[i]); } //用foreach遍歷 foreach(int n in array) { Console.WriteLine(array[n]); }
3.迭代器 除了普通的數(shù)組,很多操作數(shù)組的泛型類都支持foreach,比如List,Dictionary等,除此之外我們也可以對任何自定義的類型使用foreach,前提是繼承了IEnumerable接口(這個接口有泛型和非泛型兩版本)。 非泛型接口的GetEknumerator示例
class IntList : System.Collections.IEnumerable { int[] numbers = null; //foreach遍歷的數(shù)組 public int this[int index] //索引器 { get { return numbers[index]; } set { numbers[index] = value; } } public int Length { get { return numbers.Length; } } public IntList(int length) { numbers = new int[length]; } public System.Collections.IEnumerator GetEnumerator() //重寫接口方法 { return numbers.GetEnumerator(); } } class Program { static void Main(string[] args) { IntList list = new IntList(10); //實例化 for(int i = 0; i < 10; i++) { list[i] = i; //賦值0~9 } foreach(var n in list) //foreach循環(huán) { Console.WriteLine(n); //輸出0~9 } } }
4.var 在后面一個foreach循環(huán)中使用到了var,我的參考書中并沒有說明,在學(xué)習(xí)了解后,找到相關(guān)說明 var:根據(jù)所賦值數(shù)據(jù)推斷出類型 var v1=1; //int var v2="2"; //string var v3='3'; //char var v4=true; //bool
在unity中,可以通過對迭代器的運(yùn)用實現(xiàn)類似異步的效果,之后會另開篇章說一下。
|
|
|