C#數組
本隨筆爲我的複習鞏固知識用,多從書上總結與理解概括得來,若有錯誤麻煩指正異步
數據簡單來講就是將一連串相同類型的的數據按順序保存起來的容器。數組中的數值類型默認爲0,引用類型默認爲null。數組的索引從0開始,具備n個元素的數組的縮影爲從0~n-1。學習
1.數組的建立this
//聲明一個用於存儲int類型的一維數組並賦值 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 }; //聲明二維數組 int[,] multiArray = new int[2, 3]; multiArray[0, 0] = 1; multiArray[0, 1] = 2; //聲明同時賦值 int[,] multiArray2 = { { 1, 2, 3 }, { 4, 5, 6 } };
2.數組的遍歷spa
數組是從抽象類array派生的引用類型。因爲此類型實現類IEnumerable接口的IEnumerator,所以能夠對C#中全部數組使用foreach迭(die)代。code
打字的時候還有些字打不出來(一直以來都讀錯了),個人輸入法能夠用分號+x的形式開手寫,遇到一些狀況能夠考慮一下。blog
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.迭代器繼承
除了普通的數組,不少操做數組的泛型類都支持foreach,好比List,Dictionary等,除此以外咱們也能夠對任何自定義的類型使用foreach,前提是繼承了IEnumerable接口(這個接口有泛型和非泛型兩版本)。索引
非泛型接口的GetEknumerator示例接口
class IntList : System.Collections.IEnumerable { int[] numbers = null; //foreach遍歷的數組 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循環 { Console.WriteLine(n); //輸出0~9 } } }
4.var
在後面一個foreach循環中使用到了var,個人參考書中並無說明,在學習瞭解後,找到相關說明
var:根據所賦值數據推斷出類型
var v1=1; //int
var v2="2"; //string
var v3='3'; //char
var v4=true; //bool
在unity中,能夠經過對迭代器的運用實現相似異步的效果,以後會另開篇章說一下。