- List, generics tipinde bir C# özelliğidir.
- Listeler dinamik dizilerdir. Bir listeyi tanımlarken boyut bildirmemize gerek yoktur.
- Listeler dizilerden daha yavaştır.
- Aynı dizi üzerinde birçok işlem yapan, performans spesifik bir uygulama geliştirmiyor isek ve listelerin özellikleri bizim için kolaylık yaratacaksa List kullanabiliriz.
- Bir liste aşağıdaki gibi tanımlanabilir. < > işaretlerinin arasına hangi veri tipi yazılırsa liste o tipte elemanları tutar.
List<string> arkadaslarim = new List<string>();
List<int> sayiList = new List<int>();
- Listenin hafızada ayıracağı yer de tanım sırasında verilebilir. Listelerin kapasite tanımları sadece performans amaçlı bir ön tanımdır. Aşılırsa hata vermez.
List<string> telefonNumaralari = new List<string>(5000); //kapasite belirtilmiş liste
- Bir liste oluşturup eleman eklemenin 2 çeşidi vardır.İlkinde aşağıdaki gibi önce liste oluşturulur, sonra eleman eklenir.
List<int> list = new List<int>();
list.Add(2);
list.Add(3);
list.Add(5);
Console.WriteLine(list[0]); //ekrana 2 yazdırılır
- İkinci yöntemde ise Liste oluşturulduğu anda aşağıdaki gibi elemanları eklenir. Bu kod parçası Debug işleminde tek satır olarak okunur ve içine girilmez.
List<string> sehirList = new List<string>()
{
"ankara",
"istanbul",
"izmir",
"bursa"
};
- Bir listeden bir elemanı silmek için Remove(eleman), bir indeksi belli elemanı silmek için RemoveAt(indeks) kullanılır. Birden fazla elemanı silerken ise RemoveRange(indeks, sayı) kullanılır.
list.RemoveAt(0);
list.Remove(7); //eleman silme
list.RemoveRange(3, 2); //birden fazla eleman silme
- Listenin içinde bir değerin olup olmadığını ararken Cı,ontain metodundan yararlanırız. Eğer parantez içerisindeki değer listede var ise sonuç true yok ise false döner.
list.Contains(5); //listenin içinde 5 değeri var mı diye kontrol eder. Sonuç bool tipte döner.
- Liste içinde bir elemanın indeksini arıyorsak Indexof() metodundan yararlanırız.
list.IndexOf(5); //liste içinde dönüp değeri 5 olan elemanı bulunca durur
"IndexOf( ) kullanılarak liste içinde bir değerin indeksi aranırken, eğer o değer listede yoksa -1 değerini döndürür."
Oluşturulan bu listeleri bir listBox'da göstermenin de bir kaç yolu vardır;
- DataSource kullanarak listBox'da gösterme:
listBox1.DataSource = sehirList;
- For ya da Foreach Döngüleri Kullanarak;
for (int i = 0; i < sehirList.Count; i++)
{
listBox1.Items.Add(sehirList[i]);
}
foreach (string sehir in sehirList)
{
listBox1.Items.Add(sehir);
}
- Bir liste bir diziye ya da bir dizi bir listeye metotlar yardımıyla aşağıdaki gibi dönüştürülebilir.
sehirList.ToArray(); //listeyi arraya çevirme
//sayilar diye bir dizxi olduğnu varsayalım
sayilar.ToList(); //arrrayı listeye çevirme
LINQ ile Liste Kullanımı
list.Find(item => item == 5); //5'e eşit olan elemanı bulup sonucu döndürür.
list.Find(item => item > 3); //3'ten büyük ilk elemanı bulup sonucu döndürür.
list.FindAll(item => item > 3).Count(); //3'ten büyük bütün elemanları bulup kaç tane bulduğunu döndürür.
list.RemoveAll(item => item > 3); // değeri 3'ten büyük olan bütün liste elemanlarını siler.
list.Clear(); //bütün liste elemanlarını siler.
list.Sort(); //listeyi alfabetik sıralar.
list.Reverse(); //liste elemanlarının sırasını ters çevirir.
Hiç yorum yok:
Yorum Gönder