Aracılığıyla paylaş


Ç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 ICollection veya ICollection<T> arabirimler üzerine temel alınır. IList ve IDictionary genel karşılıklarının tümü bu iki arabirimden türetilir.

IList veya doğrudan ICollection tabanlı koleksiyonlarda, her öğe yalnızca bir değer içerir. Bu türler şunlardır:

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

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, System.Collections.Concurrent ad alanındaki genel koleksiyonları kullanın.

Queue ve Queue<T> sınıfları ilk giren ilk çıkar (FIFO) listeleri 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, Int32 dışında herhangi bir türde bir öğenin List<Int32> koleksiyonuna eklenmesi derleme zamanı hatasına neden olur. Ancak, diliniz genellikleri desteklemiyorsa, System.Collections ad alanı, kesin olarak yazılan 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 SortedList<TKey,TValue> genel sınıfı, Hashtable sınıfının ve Dictionary<TKey,TValue> genel sınıfının sıralanmış sürümlerini sağlar.

Tüm koleksiyonlar, Array hariç, sıfır tabanlı dizinler kullanır; bu, sıfır tabanlı olmayan dizilere izin verir.

Bir SortedList veya KeyedCollection<TKey,TItem> öğesinin elemanlarına ya bir anahtara ya da elemanın dizinine göre erişebilirsiniz. Hashtable veya Dictionary<TKey,TValue> öğelerinin öğelerine yalnızca anahtarı ile erişebilirsiniz.

LINQ'i koleksiyon türleriyle kullanma

LINQ to Objects özelliği, IEnumerable veya IEnumerable<T> uygulayan herhangi bir türdeki bellek içi nesnelere erişim 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).

Başlık 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.
Generikler .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.

Kaynak

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>