保留字 | 名稱 | 說明 | 常見地方 |
---|---|---|---|
[] | 數組/陣列 | 大小在宣告時便固定了,資料型態固定 | 常常使用在封包,序列化例如byte[4096] 4kb的封包 這種以確定大小的東西上 |
List<輸入資料型太> | 線性表/串列 | 大小可以隨意變動,資料型態固定 | 使用在不確定大小例如會有多少個用戶多少個訊息需要儲存這種的 |
Array | 陣列 | 大小在宣告時便固定了(聽說類型可以變動,這個地方我並不會) | (最少使用,上面兩個相比叫為少見 或者可以當作[]的延伸) |
ArrayList | 動態數組/動態陣列 | 大小隨意,資料型太也隨意 | 第三少使用類似於python的串列 |
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//但假設本身沒有第三個值那便會出現異常
上面都是一維陣列可以想像成這樣
二維陣列則是
這是規則陣列大小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]);