共用方式為


何時使用泛型集合

更新:2007 年 11 月

通常建議使用泛型集合,因為可以得到型別安全的立即好處,而不需衍生自基底集合型別及實作型別特定的成員。當集合元素為實值型別時,泛型集合型別通常要比對應的非泛型集合型別有較理想的效能 (也優於衍生自非泛型基底集合型別的型別),因為有了泛型就不需要將這些元素進行 Box 處理。

下列泛型型別會對應到現有的集合型別:

其他型別

有幾個沒有非泛型對應項目的泛型集合型別:

LINQ to Objects

只要物件型別實作 IEnumerableIEnumerable<T>,LINQ to Objects 功能就可讓您使用 LINQ 查詢以存取記憶體中的物件。LINQ 查詢提供一般模式以存取資料,比標準的 foreach 迴圈 (Loop) 更精簡、可讀性更高,並提供篩選、排序和群組功能。LINQ 查詢也可以提升效能。如需詳細資訊,請參閱 LINQ to Objects

其他功能

某些泛型型別的功能在非泛型集合型別中找不到。例如,對應到非泛型 ArrayList 類別的 List<T> 類別有一些方法可以接受泛型委派,例如,可讓您指定搜尋清單之方法的 Predicate<T> 委派、表示在清單的每一個元素上執行的方法之 Action<T> 委派,以及可讓您定義型別之間的轉換之 Converter<TInput, TOutput> 委派。

List<T> 類別可讓您指定自己的 IComparer<T> 泛型介面實作,以排序及搜尋清單。SortedDictionary<TKey, TValue>SortedList<TKey, TValue> 類別也有這項功能,也允許在建立集合時指定比較子。同樣地,Dictionary<TKey, TValue>KeyedCollection<TKey, TItem> 類別也可讓您指定自己的相等比較子。

請參閱

概念

.NET Framework 中的泛型概觀

其他資源

常用的集合型別