Koleksiyonlar II
Generic koleksiyonlar, aynı türden verileri saklayacak şekilde tasarlanan ve bu sayede veri tipi güvenliğini sağlayan koleksiyon türleridir. Non generic koleksiyonlardan farklı olarak generic koleksiyonlar, tıpkı dizilerde olduğu gibi aynı veri tipinde elemanların tutulmasına izin veriler ve bu koleksiyonlar System.Collections.Generic isim uzayının altında yer alırlar. Generic koleksiyonlar, non generic koleksiyonlarda olduğu gibi boxing işlemi ile herhangi bir dönüşümü tabi tutulmazlar. Dolayısıyla bu da non generic koleksiyonara göre daha performanslı çalışmasını sağlar.
List sınıfı, aynı türden verileri saklamak için kullanılır. Tıpkı dizi tanımlamada olduğu gibi veri tipi belirtilir ancak eleman sayısı ya da büyüklük belirtilmez. List sınıfı non generic bir koleksiyon olan ArrayList sınıfıyla birçok ortak metoda ve özelliği sahiptir. Ayrıca bu sınıf için ArrayList sınıfının generic karşılığı denilebilir. Ancak List tanımlanırken veri tipi belirtildiğinden dolayı veriler boxing kullanılarak herhangi bir dönüşüme tabi tutulmaz. Dolayısıyla ArrayList sınıfına göre daha performanslı çalışır.
Koleksiyonlarla ilgili şimdiye kadar anlatılan sınıflarda basit veri ekleme, silme, sıralama ya da saklama gibi işlemler yapılmaktaydı. Koleksiyonlar sadece bu tür basit işlemleri gerçekleştirmek veya performansı artırmak amacıyla kullanılmamaktadır. System.Collections.Generic isim uzayının altında yer alan Stack (Yığın) sınıfı derleyici, sistem veya yapay zeka yazılımlarında sıklıkla kullanılan bir koleksiyon türüdür.
Stack sınıfı, diğer generic koleksiyonların kullandığı birçok metodu ortak olarak kullanmaktadır. Bu metotlar daha önce anlatıldığı için burada değinilmeyecektir. Ancak Stack sınıfını kullanırken bu sınıfa ait olan Push(), Pop() ve Peek() metotlarının bilinmesi gerekmektedir.
Queue (kuyruk), System.Collections.Generic isim uzayının altında yer alan bir koleksiyon türü olup genelde ağ trafiği yönetimi, simülasyonlar ve veri tabanı işlemlerinde kullanılmaktadır. Stack sınıfı, son giren ilk çıkar (LIFO) yöntemine göre çalışmaktayken, Queue sınıfı ilk giren ilk çıkar (first in first out - FIFO) çalışma yöntemini kullanır. Yani Queue koleksiyonuna eklenen ilk elemana ilk sırada erişim sağlanır.
LinkedList (bağlı liste) sınıfı System.Collections.Generic isim uzayı altında yer alır ve elemanlarının birbirlerine bir link şeklinde bağlı olduğu koleksiyon türüdür.
LinkedList sınıfı kullanılırken AddFirst() metodu yardımıyla listenin ilk alanına eleman eklenir. Benzer şekilde listenin son alanına eleman eklemek için AddLast() metodu kullanılır. Bu koleksiyonun elemanlarına erişirken First ve Last özellikleri kullanılır. First öze
Dictionary (sözlük) sınıfı içerdiği elemanların bir anahtar yardımıyla saklandığı koleksiyon türü olup System.Collections.Generic isim uzayının altında yer alır. Tıpkı HashTable sınıfında olduğu gibi Dictionary sınıfının elemanlarına benzersiz anahtarlar kullanılarak erişim sağlanır. Bu koleksiyonda bildirilen tüm anahtaralar kesinlikle birbirinden farklı olmalıdır, anahtarlara atanan değerler ise birden fazla kullanılabilir.lliği ile ilk elemana erişim sağlanırken Last ile son elemana erişilir.