1. 程式人生 > >C# List的巢狀和foreach的使用

C# List的巢狀和foreach的使用

關於C#中List<T>的概念,可以和高中數學的集合概念進行對比理解,List<T>的巢狀可以理解為元素是集合的集合,用高中數學的集合的概念來表示就是{{0,1,2,3},{4,5,6,7},{8,9,10,11}}。用程式語言來表示如下:

先宣告一個元素為集合的集合myList,然後在宣告幾個元素為int型別的集合,最後用add方法將myList1,myList2,myList3,新增到myList中。

關於foreach的使用,最開始對其概念和執行過程不是很瞭解,寫了個遍歷集合myList的程式碼,想在控制檯中輸出0,1,2,3,4,5,6,7,8,9,10,11,可執行的結果並非如此:

百度了一下foreach的用法和單步除錯程式,終於搞懂了foreach的執行過程:foreach迴圈用於列舉出集合中所有的元素,foreach語句中的表示式由關鍵字in隔開的兩個項組成。in右邊的項是集合名,in左邊的項是變數名,用來存放該集合中的每個元素。該迴圈的執行過程如下:每一次迴圈時,從集合中取出一個新的元素值。放到只讀變數中去,如果括號中的整個表示式返回值為true,foreach塊中的語句就能夠執行。一旦集合中的元素都已經被訪問到,整個表示式的值為false,控制流程就轉入到foreach塊後面的執行語句。重寫了foreach程式,終於得到了自己想要的結果!

該程式執行過程如下:集合myList為{{0,1,2,3},{4,5,6,7},{8,9,10,11}},裡面共有3個型別為集合的元素{0,1,2,3},{4,5,6,7},{8,9,10,11},foreach第一次執行的時候,把myList的第一個元素{0,1,2,3}放到變數item中去,這個item為集合型別的變數,item[0]=0,item[1]=1,item[2]=2,item[3]=3。foreach第二次執行的時候,把myList的第二個元素{4,5,6,7}放到變數item中去,這時item[0]=4,item[1]=5,item[2]=6,item[3]=7。foreach第三次執行的時候,把myList的第三個元素{8,9,10,11}放到變數item中去,這時item[0]=8,item[1]=9,item[2]=10,item[3]=11。