C# Programlama Ders Notları

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

Diziyi Listeye Çevirme

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.

List Nesnesini Boşaltma

isimler.Clear ();

 

 

 

Web hosting by Somee.com