C# List 泛型


1、簡介

所屬命名空間:System.Collections.Generic

List<T>類是 ArrayList 類的泛型等效類。該類使用大小可按需動態增加的數組實現 IList<T> 泛型接口。

泛型的好處: 它為使用c#語言編寫面向對象程序增加了極大的效力和靈活性。不會強行對值類型進行裝箱和拆箱,或對引用類型進行,向下強制類型轉換,所以性能得到提高。

性能注意事項: List[T]兩點優勢

(1)在決定使用IList<T> 還是使用ArrayList類(兩者具有類似的功能)時,記住IList<T> 類在大多數情況下執行得更好並且是類型安全的。

(2)如果對IList<T> 類的類型 T 使用引用類型,則兩個類的行為是完全相同的。但是,如果對類型 T 使用值類型,則需要考慮實現和裝箱問題。

添加到ArrayList 中的任何引用或值類型都將隱式地向上強制轉換為Object。如果項是值類型,則必須在將其添加到列表中時進行裝箱操作,在檢索時進行取消裝箱操作。強制轉換以及裝箱和取消裝箱操作都會降低性能;在必須對大型集合進行循環訪問的情況下,裝箱和取消裝箱的影響非常明顯。---微軟

2、聲明

//T為列表中元素類型
List<T> List = new List<T>();

//當T為string時,舉例:
string[] nameArr = { "Ha", "Hunter", "Tom", "Lily", "Jay", "Jim", "Kuku", "Locu" };

List<string> list = new List<string>(nameArr);

3、添加

//添加一個元素
list. Add("lucy");
//添加一組元素
string[] temArr = { "Ha","Hunter", "Tom", "Lily", "Jay", "Jim", "Kuku",  "Locu" };
list.AddRange(temArr);
//插入元素 list.Insert(1, "Hei");

4、遍歷元素(foreach)

foreach (string name in list)
{
    Console.WriteLine(name);
}

5、刪除、清空元素

//刪除一個值
list.Remove("Hunter");
//刪除下標為index的元素
list.RemoveAt(0);
//從下標3開始,刪除2個元素
list.RemoveRange(3, 2);
//清空元素
list.Clear();

6、Contains(是否包含某個元素)

bool blog = list.Contains("Hunter");

7、排序Sort,倒序Reverse

//默認是元素第一個字母按升序
list.Sort();
//將List里面元素順序反轉
list.Reverse();
//從第二個元素開始,反轉4個元素
//結果list里最后的順序變成"Ha", "Jay", "Lily", "Tom", "Hunter", "Jim", "Kuku",  "Locu"

list.Reverse(1,4);

 

http://www.cnblogs.com/lgx5/p/6271098.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM