iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 5
0
Software Development

高二生_學c#一個月之痛苦,悲哀,感動回憶錄(從基礎控制判斷 goto 物件導向(內含大量圖解))系列 第 7

陣列也是四種@@

保留字 名稱 說明 常見地方
[] 數組/陣列 大小在宣告時便固定了,資料型態固定 常常使用在封包,序列化例如byte[4096] 4kb的封包 這種以確定大小的東西上
List<輸入資料型太> 線性表/串列 大小可以隨意變動,資料型態固定 使用在不確定大小例如會有多少個用戶多少個訊息需要儲存這種的
Array 陣列 大小在宣告時便固定了(聽說類型可以變動,這個地方我並不會) (最少使用,上面兩個相比叫為少見 或者可以當作[]的延伸)
ArrayList 動態數組/動態陣列 大小隨意,資料型太也隨意 第三少使用類似於python的串列

陣列有一件事情必須記住索引值第一個叫做0第二個叫做1 這樣開始索引的

            int[] n = new int[2] { 5,3 }; //類型為int 大小為2的數組 並在宣告時候就給予值(請記住如果要給值必然所有陣列大小都必須給予到值)
            for (int i = 0; i < n.Length; i++) //Length 表示數組大小
            {
                Console.WriteLine(n[i]);
            }
            int[] M = new int[2]; //大小為2的陣列
            for (int i = 0; i < M.Length; i++) //Length 表示數組大小並根據索引值給予值
            {
                M[i] = 5+i; //添加數字進去
            }
            for (int i = 0; i < M.Length; i++) 
            {
                Console.WriteLine(M[i]);
            }
Array array = Array.CreateInstance(Type.GetType("System.Int32"),3); //第一個參數是資料型態 第二個參數是陣列大小,如果輸入第三個值代碼二維陣列
            array.SetValue(1, 0); //後面索引 前面數據
            array.SetValue(2, 1);
            array.SetValue(3, 2);
            for (int i = 0; i < array.Length; i++) 
            {
                Console.WriteLine(array.GetValue(i)); 
            }

            for (int i = 0; i < array.Length; i++) // 使用 Length
            {
                array.SetValue((int)array.GetValue(i) +1, i);  //將原本的值進行+1
            }

            for (int i = 0; i < array.Length; i++) 
            {
                Console.WriteLine(array.GetValue(i)); 
            }
List<int> w = new List<int>() { 1, 2, 3 }; //可增加大小的串列  //泛型<>資料型態 請務必記住看到<>要想到泛型
            w.Add(52); 增加值根據上面的宣告可以發現索引值0是1 2是3 如今增加了一項變成所有值3是52
            for (int i=0; i < w.Count; i++) //Count 表示串列大小
            {
                Console.WriteLine(w[i]);
            }
ArrayList list1 = new ArrayList();
            list1.Add(566);
            list1.Add("BAT"); //資料型態不受影響
            for(int i = 0; i < list1.Count; i++)
            {
                Console.WriteLine(list1[i]);
            }
            //ArrayList和List共用子成員
            //.RemoveAt(0) //移除第0個資料
            //.Insert(0, "qwe") //在第0個資料中插入"qwe"
            //.add(52) //新增52數據
            // list1[2] = 52; 修改第三個資料為52//但假設本身沒有第三個值那便會出現異常

上面都是一維陣列可以想像成這樣
https://ithelp.ithome.com.tw/upload/images/20190913/20120118op7lqF67yI.jpg
二維陣列則是
https://ithelp.ithome.com.tw/upload/images/20190913/20120118SN74YtJm8J.jpg

這是規則陣列大小3乘7

int[,] bb = new int[3, 7] { { 5, 6, 7, 8, 9, 10, 11 }, { 12, 13, 14, 15, 16, 17, 18 }, { 19, 20, 21, 22, 23, 24, 25 } };

不規則陣列呢(第一排5個第二排6個第三排7個這就是不規則陣列) 本質上就是一維陣列裡面每一個值在一個陣列

int[][] cc = new int[3][] { new int[5] { 1, 2, 3, 4, 5 }, new int[6] { 6, 7, 8, 9, 10, 11 }, new int[7] { 12, 13, 14, 15, 16, 17, 18 } };

讀取方式

Console.WriteLine(bb[1,5]);
Console.WriteLine(cc[2][4]);

上一篇
糟糕睡過頭錯過第五天 這次來講的是四大迴圈
系列文
高二生_學c#一個月之痛苦,悲哀,感動回憶錄(從基礎控制判斷 goto 物件導向(內含大量圖解))7
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言