Megosztás a következőn keresztül:


Gyakran használt gyűjteménytípusok

A gyűjteménytípusok az adatgyűjtés különböző módjait jelölik, például kivonattáblákat, üzenetsorokat, vermeket, zsákokat, szótárakat és listákat.

Minden gyűjtemény közvetlenül vagy ICollection<T> közvetve a ICollection felületeken alapul. IList és IDictionary általános megfelelőik mind ebből a két felületből származnak.

Az olyan gyűjteményekben, amelyek alapulnak IList vagy közvetlenül alapulnak ICollection, minden elem csak egy értéket tartalmaz. Ezek a típusok a következők:

Az interfészen IDictionary alapuló gyűjteményekben minden elem tartalmaz egy kulcsot és egy értéket is. Ezek a típusok a következők:

Az KeyedCollection<TKey,TItem> osztály egyedi, mert az értékek közé beágyazott kulcsokat tartalmazó értékek listája. Ennek eredményeképpen úgy viselkedik, mint egy lista és egy szótár.

Ha hatékony többszálú gyűjtemény-hozzáférésre van szüksége, használja az általános gyűjteményeket a System.Collections.Concurrent névtérben.

Az Queue és Queue<T> az osztályok az első előtti listákat biztosítják. Az Stack osztályok az Stack<T> utolsó előtti listákat biztosítják.

Erős gépelés

Az általános gyűjtemények a legjobb megoldás az erős gépelésre. Ha például egy gyűjteményen kívül Int32 bármilyen típusú elemet ad hozzá, List<Int32> fordítási időt jelző hibát okoz. Ha azonban a nyelv nem támogatja az általánosakat, a System.Collections névtér absztrakt alaposztályokat is tartalmaz, amelyeket kiterjeszthet az erősen gépelt gyűjteményosztályok létrehozására. Ezek az alaposztályok a következők:

A gyűjtemények eltérőek

A gyűjtemények az elemek tárolásának, rendezésének és összehasonlításának módjában, valamint a keresések végrehajtásában különböznek.

Az SortedList osztály és az SortedList<TKey,TValue> általános osztály az osztály és az Hashtable általános osztály rendezett verzióit Dictionary<TKey,TValue> biztosítja.

Minden gyűjtemény nulla alapú indexeket használ, kivéve Arraya nem nulla alapú tömböket.

Egy vagy több KeyedCollection<TKey,TItem> elem elemeit SortedList a kulcs vagy az elem indexe alapján érheti el. Egy vagy több Dictionary<TKey,TValue> elem elemeit Hashtable csak az elem kulcsával érheti el.

A LINQ használata gyűjteménytípusokkal

A LINQ to Objects szolgáltatás általános mintát biztosít a memóriában lévő objektumok elérésére bármilyen típusú, implementáló IEnumerable vagy IEnumerable<T>. A LINQ-lekérdezések számos előnnyel rendelkeznek a szabványos szerkezetekkel, például foreach a hurkokkal szemben:

  • Tömörek és könnyebben érthetők.
  • Szűrhetnek, rendezhetnek és csoportosíthatnak adatokat.
  • Javíthatják a teljesítményt.

További információ: LINQ to Objects (C#), LINQ to Objects (Visual Basic), parallel LINQ (PLINQ).

Cím Leírás
Gyűjtemények és adatstruktúrák Ismerteti a .NET-ben elérhető gyűjteménytípusokat, beleértve a vermeket, az üzenetsorokat, a listákat, a tömböket és a szótárakat.
Kivonatoló és szótárgyűjtemény-típusok Az általános és a nemgenerikus kivonatalapú szótártípusok funkcióit ismerteti.
Rendezett gyűjteménytípusok Azokat az osztályokat ismerteti, amelyek rendezési funkciót biztosítanak listákhoz és csoportokhoz.
Generikus Ismerteti az általános szolgáltatások használatát, beleértve a .NET által biztosított általános gyűjteményeket, meghatalmazottakat és interfészeket. Hivatkozásokat tartalmaz a C#, a Visual Basic és a Visual C++ funkciódokumentációira, valamint az olyan támogató technológiákra, mint a tükröződés.

Referencia

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>