C# Collections ve Generics Sınıflar

Collection ve Generics Sınıflara Geçmeden Önce Boxing/Unboxing kavramlarına kısaca bir değinmekte fayda var.

Kısaca;

Boxing
Değer (int,double,bool vs.) tipinden bir değişkenin, object türüne bilinçsiz dönüştürülmesidir.
Unboxing
Boxing işleminin tam tersidir. Object türünden bir değişkenin, değer tipine bilinçli dönüştürülmesidir.

Örneğin;

Collection işlemlerinde sık sık kullanılan Boxing ve Unboxing tür dönüştürme işlemleri bellek kullanımını arttırdığından dolayı uygalama performansını kötü etklemektedir. Generic Collection Sınıflarının ortaya çıkmasının en önemli nedenide budur.

System.Collections.ArrayList ve System.Collections.Generic.List<T>

İki Sınıfta Tekli Dizi Koleksiyonu Oluşturmak için Kullanılır, aradaki fark ArrayList Object türde değer tutarken List sınıfı bildirilen türde değer saklar;

ArrayList;

ArrayList

Değer object türde tutulmakta bu durumda değer kullanılmak istenildiğinde cast edimesi gerekiyor;

 

List<T>; 

List

ArrayList farklı olarak Generic List Sınıfı belirtilen türde değer saklıyor, doğal olarak kullanılmak istenildiğinde herhangi bir dönüştürme işlemine gerek duymuyor,

System.Collections.HashTable ve System.Collections.Generic.Dictionary<T, T>;

İki Sınıfta (key,value) şeklinde  İkili Dizi Koleksiyonu Oluşturmak için Kullanılır, aradaki fark HashTable (Object ,Object) türde değer tutarken Dictionary sınıfı (Tür, Tür) şeklinde  bildirilen türde değer saklar;

 HashTable;

HashTable

 

Dictionary<T, T>;

Dictionary

Sevebilirsin...

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir