Çok kullanılan koleksiyon türleri

Koleksiyon türleri karma tablolar, kuyruklar, yığınlar, torbalar, sözlükler ve listeler gibi veri toplamanın farklı yollarını temsil eder.

Tüm koleksiyonlar, doğrudan veya dolaylı olarak veya ICollection<T> arabirimlerini temel alırICollection. IList ve IDictionary genel karşılıklarının tümü bu iki arabirimden türetilir.

veya doğrudan tabanlı IListICollectionkoleksiyonlarda her öğe yalnızca bir değer içerir. Bu türler şunları içerir:

Arabirimine dayalı IDictionary koleksiyonlarda her öğe hem bir anahtar hem de bir değer içerir. Bu türler şunları içerir:

KeyedCollection<TKey,TItem> sınıfı benzersizdir çünkü değerlerin içine eklenmiş anahtarlar içeren bir değer listesidir. Sonuç olarak, hem liste hem de sözlük gibi davranır.

Verimli çok iş parçacıklı koleksiyon erişimine ihtiyacınız olduğunda, ad alanında genel koleksiyonları System.Collections.Concurrent kullanın.

Queue ve Queue<T> sınıfları ilk çıkan listeler sağlar. Stack ve Stack<T> sınıfları, ilk çıkan son listeler sağlar.

Güçlü yazma

Genel koleksiyonlar, güçlü yazma için en iyi çözümlerdir. Örneğin, bir koleksiyona dışında herhangi bir türde Int32 öğe eklemek derleme zamanı hatasına List<Int32> neden olur. Ancak, diliniz genel türleri desteklemiyorsa ad alanı, System.Collections kesin olarak yazılmış koleksiyon sınıfları oluşturmak için genişletebileceğiniz soyut temel sınıflar içerir. Bu temel sınıflar şunlardır:

Koleksiyonlar nasıl değişir?

Koleksiyonlar öğeleri depolama, sıralama ve karşılaştırma ve arama yapma şekline göre farklılık gösterir.

SortedList sınıfı ve genel sınıfı, sınıfın SortedList<TKey,TValue> ve genel sınıfın HashtableDictionary<TKey,TValue> sıralanmış sürümlerini sağlar.

Tüm koleksiyonlar, sıfır tabanlı olmayan dizilere izin veren dışında Arraysıfır tabanlı dizinler kullanır.

bir veya KeyedCollection<TKey,TItem> öğesinin öğelerine SortedList anahtara veya öğenin dizinine göre erişebilirsiniz. Bir veya Dictionary<TKey,TValue> öğesinin öğelerine Hashtable yalnızca öğenin anahtarıyla erişebilirsiniz.

LINQ'i koleksiyon türleriyle kullanma

LINQ to Objects özelliği, veya IEnumerable<T>uygulayan IEnumerable herhangi bir türdeki bellek içi nesnelere erişmek için ortak bir desen sağlar. LINQ sorgularının döngüler gibi foreach standart yapılara göre çeşitli avantajları vardır:

  • Bunlar kısadır ve anlaşılması daha kolaydır.
  • Verileri filtreleyebilir, sıralayabilir ve gruplandırabilir.
  • Performansı geliştirebilirler.

Daha fazla bilgi için bkz . LINQ to Objects (C#), LINQ to Objects (Visual Basic)ve Parallel LINQ (PLINQ).

Ünvan Açıklama
Koleksiyonlar ve Veri Yapıları Yığınlar, kuyruklar, listeler, diziler ve sözlükler dahil olmak üzere .NET'te kullanılabilen çeşitli koleksiyon türlerini açıklar.
Hashtable ve Sözlük Koleksiyon Türleri Genel ve genel olmayan karma tabanlı sözlük türlerinin özelliklerini açıklar.
Sıralanmış Koleksiyon Türleri Listeler ve kümeler için sıralama işlevselliği sağlayan sınıfları açıklar.
Genel Türler .NET tarafından sağlanan genel koleksiyonlar, temsilciler ve arabirimler de dahil olmak üzere genel özellikler özelliğini açıklar. C#, Visual Basic ve Visual C++ için özellik belgelerinin yanı sıra yansıma gibi destekleyici teknolojilerin bağlantılarını sağlar.

Başvuru

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>