Sdílet prostřednictvím


Běžně používané typy kolekce

Typy kolekce jsou běžné varianty kolekcí dat, jako například tabulky hash hodnot, fronty, zásobníky, hodnoty typu bag, slovníky a seznamy.

Kolekce jsou založeny na rozhraní ICollection, IList, IDictionary, nebo jejich obecných protějšcích. Rozhraní IList a IDictionary jsou obě odvozeny z rozhraní ICollection. Proto jsou všechny kolekce založeny na rozhraní ICollection buď přímo nebo nepřímo. V kolekcích založených na rozhraní IList (např. Array, ArrayList, nebo List<T>) nebo přímo v rozhraní ICollection (např. Queue, ConcurrentQueue<T>, Stack, ConcurrentStack<T> nebo LinkedList<T>), každý element obsahuje pouze hodnotu. V kolekcích založených na rozhraní IDictionary (například třídy Hashtable a SortedList, Dictionary<TKey, TValue> a obecné třídy SortedList<TKey, TValue>), nebo třídy ConcurrentDictionary<TKey, TValue>, každý element obsahuje klíč i hodnotu. Třída KeyedCollection<TKey, TItem> je jedinečná, protože je seznamem hodnot s klíči vloženými do hodnot, a proto se chová podobně jako seznam a podobně jako slovník.

Obecné kolekce jsou nejlepším řešením silného typování. Avšak pokud jazyk nepodporuje obecné typy, obor názvů System.Collections obsahuje základní kolekce, jako například CollectionBase, ReadOnlyCollectionBase, a DictionaryBase, které jsou abstraktními základními třídami, které lze rozšířit pro vytvoření kolekce tříd, které jsou silně typované. Pokud je vyžadován efektivní přístup pro vícevláknové kolekce, použijte obecné kolekce v oboru názvů System.Collections.Concurrent.

Kolekce se mohou lišit podle způsobu uložení prvků, způsobu řazení, podle toho, jak se provádí hledání a podle způsobu, jakým je prováděno porovnávání. Třída Queue a obená třída Queue<T> poskytují seznamy první dovnitř, první ven (FIFO), zatímco třída Stack a obecná třída Stack<T> poskytují seznamy poslední dovnitř, první ven (LIFO). Třída SortedList a obecná třída SortedList<TKey, TValue> poskytují seřazené verze třídy Hashtable a obecné třídy Dictionary<TKey, TValue>. Prvky Hashtable nebo Dictionary<TKey, TValue> jsou přístupné pouze klíčem prvku, ale prvky SortedList nebo KeyedCollection<TKey, TItem> jsou přístupné pomocí klíče nebo indexu prvku. Indexy ve všech kolekcích jsou počítány od nuly, s výjimkou Array, což umožňuje použití polí, které nejsou číslovány od nuly.

Vlastnost LINQ to Objects vám umožní použít dotazy LINQ pro přístup k objektům v paměti na tak dlouho, dokud objektový typ implementuje rozhraní IEnumerable nebo IEnumerable<T>. Dotazy LINQ poskytují společný vzorek pro přístupová data; jsou obvykle více stručná a čitelná než standardní smyčky foreach; a poskytují filtrování, řazení a seskupování schopností. Dotazy LINQ mohou také zvýšit výkon. Další informace naleznete v tématu LINQ to Objekty a Paralelní LINQ (PLINQ).

Příbuzná témata

Title

Popis

Typ kolekce Array

Popisuje funkce pole, které jim umožňují zacházení jako s kolekcemi.

Typy kolekce seznam a ArrayList

Popisuje funkce obecných a neobecných seznamů, které jsou nejběžněji používanými typy kolekcí.

Typy kolekcí Hashtable a Dictionary

Popisuje funkce obecných a neobecných slovníků založených hodnotách hash.

Seřazené typy kolekcí

Popisuje třídy, které poskytují funkce řazení pro seznamy a sady.

Typy kolekce fronta

Popisuje funkci obecných a neobecných front.

Kolekce typu zásobník

Popisuje funkce obecných a neobecných zásobníků.

Typ kolekce HashSet

Popisuje obecný typ kolekce System.Collections.Generic.HashSet<T>.

Operace nastavení HashSet a LINQ

Popisuje operace sad poskytované typem kolekce System.Collections.Generic.HashSet<T> a operacemi sady LINQ.

Kolekce a datové struktury

Popisuje různé typy kolekce, které jsou k dispozici v rozhraní .NET Framework, včetně zásobníků, front, seznamů, polí a struktur.

Obecné typy v rozhraní .NET Framework

Popisuje funkce obecných typů, včetně obecných kolekcí, delegátů a rozhraní poskytovaných rozhraním .NET Framework. Obsahuje odkazy na dokumentaci funkcí jazyka C#, Visual Basic a Visual C++, a na podporující technologie, jako je například reflexe.

Odkaz

System.Collections

System.Collections.Generic

System.Collections.ICollection

System.Collections.Generic.ICollection<T>

System.Collections.IList

System.Collections.Generic.IList<T>

System.Collections.IDictionary

System.Collections.Generic.IDictionary<TKey, TValue>