Uygulamalarımızda en sık kullandığımız yapılardan biri şüphesiz collectionlar. Kullandığımız collectionların, uygulamalarımızın performansı üzerinde büyük bir etkisi olduğu için, doğru yerde doğru collection türünü kullanıyor olmamız çok önemli.
Collection seçiminde boyut, collection içinde tutulacak verinin türü ve gereksinim duyulan fonksiyonlar en önemli kriterlerimizdir.
Eğer collection içindeki verileri sıralayacaksanız;
* DataGrid benzeri bir kontrolde, sıralanmış verileri read-only olarak data source olarak kullanacaksanız arraylist kullanın.
* Çok sık güncellenmeyecek olarak verilerin sıralamak için SortedList kullanın.
* String değerleri sıralamak için NameValueCollection kullanın.
* SortedList nesnesi collectionı oluştururken verileri ön sıralamaya tabi tutar. Bu doğal olarak daha yüksek maliyetli bir oluşturma süreci anlamına gelir ancak mevcut verilerdeki değişiklikler ve listede yapılacak basit eklemeler hızlı bir şekilde collectiona yansıtılır ve sıralama güncellenir. SortedList nesnesi küçük güncellemelere tabi olacak, küçük ölçekli veriler için uygundur.
Collection içinde arama yapacaksanız;
* Bir anahtar/değer çifti ile random arama yapacaksanız HashTable kullanın.
* String türünden veriler üzerinde random arama yapacaksanız StringDictionary kullanın.
* 10dan daha az sayıda veri içinde arama yapacaksanız ListDictionary kullanın.
Collectiondaki nesnelere Index aracılığıyla erişecekseniz;
* Bir anahtar belirterek veri erişimi yapmak için Hashtable, SortedList, ListDictionary ve StringDictionary nesnelerini kullanın.
* Bir anahtar veya sıfır tabanlı bir index değeri belirterek veri erişimi yapmak için NameValueCollection nesnesini kullanın.
* Sıfır tabanlı bir index değeri belirterek veri erişimi yapmak için ArrayList ve StringCollection nesnelerini kullanın.