Sdílet prostřednictvím


Obecné kolekce na platformě .NET

Knihovna tříd .NET poskytuje v oboru System.Collections.GenericSystem.Collections.ObjectModel názvů řadu obecných tříd kolekce. Podrobnější informace o těchto třídách naleznete v tématu Běžně používané typy kolekcí.

System.Collections.Generic

Mnoho obecných typů kolekcí je přímých analogů negenerických typů. Dictionary<TKey,TValue> je obecná verze Hashtable; používá obecnou strukturu KeyValuePair<TKey,TValue> pro výčet místo DictionaryEntry.

List<T>je obecná verze .ArrayList Existují obecné Queue<T> a Stack<T> třídy, které odpovídají negenerické verze.

Existují obecné a negenerické verze SortedList<TKey,TValue>. Obě verze jsou hybridními slovníky a seznamem. Obecná SortedDictionary<TKey,TValue> třída je čistý slovník a nemá žádný negenerický protějšk.

Obecná LinkedList<T> třída je skutečný propojený seznam. Nemá žádný negenerický protějšk.

System.collections.objectmodel

Obecná Collection<T> třída poskytuje základní třídu pro odvození vlastních obecných typů kolekcí. Třída ReadOnlyCollection<T> poskytuje snadný způsob, jak vytvořit kolekci jen pro čtení z libovolného IList<T> typu, který implementuje obecné rozhraní. Obecná KeyedCollection<TKey,TItem> třída poskytuje způsob, jak ukládat objekty, které obsahují vlastní klíče.

Další obecné typy

Obecná Nullable<T> struktura umožňuje používat typy hodnot, jako by mohly být přiřazeny null. To může být užitečné při práci s databázovými dotazy, kde můžou chybět pole obsahující typy hodnot. Parametr obecného typu může být libovolný typ hodnoty.

Poznámka:

V jazyce C# a Visual Basic není nutné explicitně používat Nullable<T> , protože jazyk má syntaxi pro typy s možnou hodnotou null. Viz typy hodnot s možnou hodnotou Null (referenční dokumentace jazyka C#) a Typy hodnot Nullable (Visual Basic).

Obecná ArraySegment<T> struktura poskytuje způsob, jak oddělovat rozsah prvků v jednorozměrném matici založeném na nule libovolného typu. Parametr obecného typu je typ prvků pole.

Obecný EventHandler<TEventArgs> delegát eliminuje potřebu deklarovat typ delegáta pro zpracování událostí, pokud vaše událost dodržuje model zpracování událostí používaný rozhraním .NET. Předpokládejme například, že jste vytvořili třídu odvozenou MyEventArgs z EventArgs, pro uložení dat pro vaši událost. Událost pak můžete deklarovat následujícím způsobem:

public:
    event EventHandler<MyEventArgs^>^ MyEvent;
public event EventHandler<MyEventArgs> MyEvent;
Public Event MyEvent As EventHandler(Of MyEventArgs)

Viz také