List koleksiyonu
List koleksiyonu ile ArrayList koleksiyonu benzerlik gösterir. Aralarındaki fark; List koleksiyonunun generic, ArrayList koleksiyonunun ise non-generic yapıda olmasıdır.
Generic koleksiyonlarda mutlaka içinde saklanacak verinin tipi belirtilmelidir çünkü belirlenen tipin dışında veri saklanmaya çalışıldığında hata ile karşılaşılır. Non-generic koleksiyonlarda ise bu işlem yapılmaz. Non-generic koleksiyonların veri tipi obje olarak belirlenir ve bu koleksiyonlarda her tipten veri saklanabilir.
ArrayList kullanımının sakıncalarından biride tip güvenliğinin olmaması.Bu sorunlar programın akışında karmaşaya yol açabilirler ve performansı negatif etkileyebilirler.Eğer koleksiyon içinde bütün veriler aynı tipte olacaksa ArrayList yerine Generic List koleksiyon yapısı kullanılmalıdır.
List<int> Sayilar=new List<int>(); //List<int> : Bu koleksiyon yapısına int tipinden başka değer eklenemez. Sayilar.Add(12);
Sayilar.Add(10);
Sayilar.Add(17);
Sayilar.Add(21);
var buyukSehiler = new List<string>() { "İstanbul", "Ankara", "İzmir", "Bursa" };
List Nesnesinin Uzunluğunu Alma
Sayilar.Count;
List Nesnesinin Değerlerini Okuma (foreach)
C# List içindeki verileri yazdırmak için aşağıdaki iki döngüden biri kullanılarak değerleri ekrana yazdırma işlemi yapılabilir. foreach (string sayi in Sayilar) { MessageBox.Show(sayi); }
List Nesnesindeki Değerleri Okuma (for)
int toplam=0;
for (int i = 0; i < Sayilar.Count; i++)
{ toplam+=Sayilar[i]; }
MessageBox.Show(toplam);
List Nesnesinden Değer Çıkarma
Remove Silinmesini istenilen değeri siler. Silinecek değer liste içinde birden fazla olması durumunda ilk değeri kaldırır. Sayilar.Remove(42);
List Nesnesinden Index Numarası ile Değer Çıkarma
RemoveAt silinecek index numarasını parametre olarak alır.
Sayilar.RemoveAt(2); // index sırası 2 olan değeri siler.
Sayilar.RemoveAt(0); // ilk sıradaki değeri siler.
List İçinde Arama
List.Contains() metodunu kullanarak bir nesnenin listede olup olmadığını kontrol ettirebilirsiniz.
if (isimler.Contains("Ahmet")) { MessageBox.Show("Ahmet bu listede mevcuttur."); }
Listede Kaçıncı Sırada Olduğunu Bulma
BinarySearch metodu, kendisine verilen değerin listede kaçıncı sırada olduğunu döndürür. Aranan değer liste içinde yoksa negatif bir değer döndürür.
List<string> isimler = new List<string>();
isimler.Add("Ali"); isimler.Add("Ahmet"); isimler.Add("Mehmet"); isimler.Add("Kemal");
int aranaIndex = isimler.BinarySearch("Ahmet"); //arananIndex:1 int
aranaIndex2 = isimler.BinarySearch("Yusuf"); // negatif değer
string[] dizi = new string[3];
dizi[0] = "Ayşe";
dizi[1] = "Fatma";
dizi[2] = "Pakize";
List<string> isimler = new List<string>(dizi);//diziyi listeye aşağıdaki gibi çevirebilirsiniz.
isimler.Clear ();