C#
本隨筆為個人復習鞏固知識用,多從書上總結與理解歸納得來,如有錯誤麻煩指正
資料簡單來說就是將一連串相同型別的的資料按順序保存起來的容器,陣列中的數值型別默認為0,參考型別默認為null,陣列的索引從0開始,具有n個元素的陣列的縮影為從0~n-1,
1.陣列的創建
//宣告一個用于存盤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.陣列的遍歷
陣列是從抽象類array派生的參考型別,由于此型別實作類IEnumerable介面的IEnumerator,因此可以對C#中所有陣列使用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.迭代器
除了普通的陣列,很多操作陣列的泛型類都支持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中,可以通過對迭代器的運用實作類似異步的效果,之后會另開篇章說一下,
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/231251.html
標籤:.NET技术
上一篇:推薦一款性價位元別高的HighReport工具-大屏可視化報表
下一篇:資料庫應用開發一、vs
