List如同Array一樣,可以建立許多陣列元素,但是卻比Array來的靈活.
例如要建立一陣列元素,Array需要先宣告陣列長度,而List不需要.
Array->
int[] myArray = new int[5] ;
int[] myArray = { 1, 2, 3, 4, 5 };
List->
List<int> myLists = new List<int>();
另外List如同一張資料表,你可以對它編輯,如加入某一列或刪除某一列.
建構函式 | 說明 |
---|---|
List<T>() | 初始化 List<T> 類別的新執行個體,這個執行個體為空白且具有預設的初始容量。 |
List<T>(IEnumerable<T>) | 初始化 List<T> 類別的新執行個體,其包含從指定之集合複製的項目,且具有容納複製之項目數目的足夠容量。 |
List<T>(Int32) | 為具有指定初始容量且為空的 List<T> 類別,初始化新的執行個體。 |
屬性 | 說明 |
---|---|
Capacity | 在不需要調整大小之下,取得或設定內部資料結構可以保存的項目總數。 |
Count | 取得 List<T> 中所包含的項目數。 |
Item[Int32] | 在指定的索引位置上取得或設定項目。 |
方法 | 說明 |
---|---|
Add | 將物件加入至 List<T> 的末端。 |
AddRange | 將特定集合的項目加入至 List<T> 的結尾。 |
BinarySearch | 使用預設的比較子並傳回項目以零為起始的索引,來搜尋項目之整個排序的 List<T>。 |
Clear | 將所有項目從 List<T> 移除。 |
Contains | 判斷某項目是否在 List<T> 中。 |
Equals(Object) | 判斷指定的物件是否等於目前的物件。 |
Find | 擷取符合指定之述詞所定義的條件之所有項目。 |
Foreach | 在 List<T> 的每一個項目上執行指定之動作。 |
IndexOf(T) | 搜尋指定的物件,並傳回整個 List<T> 中第一個出現之以零為起始的索引。 |
Insert(Int32, T) | 將項目插入至 List<T> 中指定的索引位置。 |
InsertRange(Int32, IEnumerable<T>) | 將集合的項目插入位於指定索引的 List<T> 中。 |
Remove(T) | 從 List<T> 移除特定物件之第一個符合的元素。 |
RemoveAt(Int32) | 移除 List<T> 中指定之索引處的項目。 |
RemoveRange(Int32, Int32) | 從 List<T> 移除的項目範圍。 |
Sort | 使用預設的比較子來排序在整個 List<T> 中的項目。 |
TrimExcess | 將容量設為 List<T> 中項目的實際數目,如果該數目小於臨界值。 |
TrueForAll | 判斷 List<T> 中的每一個項目是否符合指定之述詞所定義的條件。 |
private void list_type1()
{
List<string> myLists = new List<string>();
myLists.Add("A001");
myLists.Add("A002");
myLists.Add("A003");
Console.WriteLine("->Display myList");
Console.WriteLine(myLists[0]);
Console.WriteLine(myLists[1]);
Console.WriteLine(myLists[2]);
Console.WriteLine("->Use foreach in");
foreach (var showlist in myLists)
{
Console.WriteLine(showlist);
}
//Remove 移除某一列
Console.WriteLine("->Remove A002");
myLists.Remove("A002"); //or myLists.RemoveAt(1);
foreach (var showlist in myLists)
{
Console.WriteLine(showlist);
}
//Remove 新增某一列
Console.WriteLine("->Insert A004");
myLists.Insert(1,"A004"); //or myLists.RemoveAt(1);
foreach (var showlist in myLists)
{
Console.WriteLine(showlist);
}
}
private void lise_type3()
{
List<List<string>> myLists = new List<List<string>>();
myLists.Add(new List<string>() { "A001", "David" });
myLists.Add(new List<string>() { "A002", "John" });
myLists.Add(new List<string>() { "A003", "Tom" });
foreach (var showlist in myLists)
{
Console.WriteLine(showlist[0] + " -> " + showlist[1]); //column[0] & column[1]
}
}
private class myList
{
public string ID{ get; set; }
public string Name{ get; set; }
public string Level { get; set; }
}
private void lise_type4()
{
List<myList> myLists = new List<myList>();
myLists.Add(new myList { ID = "A001",Name="David",Level="A" });
myLists.Add(new myList { ID = "A002", Name = "John", Level = "B" });
myLists.Add(new myList { ID = "A003", Name = "Tom", Level = "A" });
foreach (var showlist in myLists)
{
Console.WriteLine(showlist.ID + "->" + showlist.Name +"->"+ showlist.Level); //column[0] & column[1]
}
}