C# List – (C#教學) – 所謂List, 就是把多個同類的variable串列在一起. 加上for, foreach迴圈的使用, 令他們可以作出相同的行為.
以下我會介紹:
- 為何要有List
- List的使用方法
- List的使用一覽表
為何要有List
試想想有一堆不同值的string, 散落在class, module裡, 如果我想把他們用同一套一個程式碼運行, 那辨法是甚麼. 就是用List列表把它們放在一起, 再用method或for, foreach迴圈來實行. 這一方面增加了編程的彈性, 另一方面也減少了編程的代碼, 大大有利了對程式碼的實作及維護.
List的使用方法
- List加上For Loop. 這之前巳說過.
- List加上Linq作使用, 這與SQL相似, 可從Datasourse中拿資料.
- List的內容是Interface, Inherit Class, 把各程不同的類放在一起, 在一段程式內用相同的過程調用不同的Class, 可把巳有的編程碼運用得更靈活, 但對初學者來說較有難度.
- 用Json把List 字元化, 方便在Network中傳輸, 也可把Json Text與Class Object中容易轉換.
List的使用一覽表
以下包含 C# List 的5種基本應用方法, List 初始化, List 加入值, List 更新值, List 刪除值, List foreach迴圈, Let’s Start!
方法 | 例子: |
加入Package | using System.Collections.Generic; |
初始化 List Init | List<string> names = new List<string>(){ “John”, “Peter”, “Mary” }; Console.WriteLine(string.Join(“,”, names)); //Result: John,Peter,Mary |
加入值 List Add | List<string> names = new List<string>(){ “John”, “Peter”, “Mary” }; names.Add(“Tim”); Console.WriteLine(string.Join(“,”, names)); //Result: John,Peter,Mary,Tim |
加入值 List AddRange | List<string> names = new List<string>(){ “John”, “Peter”, “Mary” }; var names2 = new List<string>(){ “Mekado”, “Yamamotto”, “Dick”, “Kim” }; names.AddRange(names2); Console.WriteLine(string.Join(“,”, names)); //Result: John,Peter,Mary,Tim,Mekado,Yamamotto,Dick,Kim |
插入值 List Insert | List<string> names = new List<string>(){ “John”, “Peter”, “Mary” }; names.Insert(2, “Chan”); Console.WriteLine(string.Join(“,”, names)); //Result: John,Peter,Chan,Mary |
更新值 List Update | List<string> names = new List<string>(){ “John”, “Peter”, “Mary” }; names[0] = “Paul”; Console.WriteLine(string.Join(“,”, names)); //Result: Paul,Peter,Mary |
刪除值 1 List Remove 1 | List<string> names = new List<string>(){ “John”, “Peter”, “Mary” }; names.Remove(“Mary”); Console.WriteLine(string.Join(“,”, names)); //John,Peter |
刪除值 2 List Remove 2 | List<string> names = new List<string>(){ “John”, “Peter”, “Mary” }; names.RemoveAt(2); Console.WriteLine(string.Join(“,”, names)); //John,Peter |
加入Package | using System.Linq; |
淺Copy List | List<string> names = new List<string>(){ “John”, “Peter”, “Mary” }; var cloneLsts = names.ToList<string>(); names.Sort(); Console.WriteLine(string.Join(“,”, names)); Console.WriteLine(string.Join(“,”, cloneLsts)); //Result (names): John, Peter, Mary //Result (cloneLsts): John, Mary, Peter |
包含值 List Contains | List<string> names = new List<string>(){ “John”, “Peter”, “Mary” }; var isPeter = names.Contains(“Peter”); Console.WriteLine(isPeter); //Result: True |
foreach迴圈 List Foreach | List<string> names = new List<string>(){ “John”, “Peter”, “Mary” }; foreach(var name in names) { Console.WriteLine(name); } //Dick //Peter //Mary |
(等如) | |
for loop迴圈 List For | List<string> names = new List<string>(){ “John”, “Peter”, “Mary” }; for(int i = 0; i < names.Count(); i++) { Console.WriteLine(names[i]); } //Dick //Peter //Mary |
相關頁面:
C# 陣列 – 學會Array陣列基本5種應用方法 – 初始化, 加入值, 更新值, 刪除值, foreach迴圈
C# Dictionary – 學會Dictionary的基本5種應用方法 – 初始化, 加入值, 更新值, 刪除值, foreach迴圈
參考資料: https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/arrays/using-foreach-with-arrays