C# dilinde Generic koleksiyonlar

C# dilinde Generic koleksiyonlar

Gelen verinin belirttiğimiz tipte tutulmasını sağladığımız listelerdir.

Genericlerden önce methodlarla ArrayListe veri alımının kontrolünü sağlıyorduk. Genericlerle bu sorun çözüldü ve esneklik başladı.

    class Program     {         static void Main(string[] args)         {              listeyeEkle(5);                      }          public static void listeyeEkle(int gelenVeri)         {             ArrayList liste = new ArrayList();             liste.Add(gelenVeri);         }     }

Kodu incelediğinizde parametre ile int veri tipli değişken alınıyor ve listeye ekleniyor.

Şimdi aşağıda Generic kodlarına bakalım. List koleksiyonu en çok kullandığımız koleksiyondur. İlk örneklerde int veri tipli veya string veri tipli kullanabiliriz. Bunlar dışında bir class oluşturur ve içerisine propertyler ekleriz. O class tipindeki verileri de list içine ekleyebiliriz.

    class Program     {         static void Main(string[] args)         {             //ArrayList'in Generic versiyonu List'tir.              ArrayList list = new ArrayList();             list.Add(1);             list.Add("Kodlasana.Com");              // <T> : T tipi demek .net framework içerisinde olan veya bizim oluşturduğumuz herhangibir tip demektir.              List<int> listem = new List<int>();             listem.Add(2); //sadece int veri girişi sağlanır             listem.Add(3);              List<int> listem2 = new List<int>();             listem2.Add(1);             listem2.AddRange(listem); // diğer int tipli listeyi ekledik               foreach (var item in listem2)             {                 Console.WriteLine(item);             }              Console.ReadLine();          }     }

Musteri classımızı listemize tiplersek:

    class Program     {         static void Main(string[] args)         {             List<Musteri> musteriListesi = new List<Musteri>();             musteriListesi.Add(new Musteri { id = 1, isim = "Tutku", soyisim = "Çakır" });              foreach (var item in musteriListesi)             {                 Console.WriteLine("ID {0} ISIM:  {1} - SOYISIM: {2}", item.id,item.isim,item.soyisim);             }              //yada              for (int i = 0; i < musteriListesi.Count; i++)             {                 Console.WriteLine("ID {0} ISIM:  {1} - SOYISIM: {2}", musteriListesi[i].id, musteriListesi[i].isim, musteriListesi[i].soyisim);             }              Console.ReadLine();          }     }
    class Program     {         static void Main(string[] args)         {              List<int> sayilarim = new List<int>();             sayilarim.Add(1);              int[] eklenecekDizi = new int[4];             eklenecekDizi[0] = 2;             eklenecekDizi[1] = 3;             eklenecekDizi[2] = 4;             eklenecekDizi[3] = 5;              sayilarim.AddRange(eklenecekDizi);              //yada              //for(int i=0; i < eklenecekDizi.Length; i++)             //{             //    sayilarim.Add(eklenecekDizi[i]);             //}              int capacity = sayilarim.Capacity; // listenin kapasitesini 4lük şekilde  artırır...             int count = sayilarim.Count;  // listedeki elemanların sayısını verir             sayilarim.TrimExcess(); // count ve capacity değerlerini eşitler.             int capacity2 = sayilarim.Capacity; // listenin kapasitesini 4lük şekilde  artırır...             int count2 = sayilarim.Count;  // listedeki elemanların sayısını verir              sayilarim.ForEach(i => Console.WriteLine(i)); //i, listedeki her elemandır.             //Tüm elemanları ekrana yazdırdık. List içinde ForEach metodunun kullanılışını da gördük.             int bulunanDeger = sayilarim[0];             Console.WriteLine("List koleksiyonunda 0.indisteki eleman: {0}", bulunanDeger);              sayilarim.Insert(3, 100); //3.indise 100 değerini ekle demektir. 3.indisteki değeri ise bir sonraki indise kaydırır. Yani araya eleman eklme işlemini insert metodu ile yaparız.              sayilarim.InsertRange(2, eklenecekDizi); //2.indisten itibaren int tipli diziyi komple ekliyoruz.              bool dataVarmi= sayilarim.Any(); // listede eleman varsa true değeri döndürür              bool kontrol2 = sayilarim.Any(i=> i>5 ); //i'nin değeri 5'ten büyükse true döndürür.              sayilarim.Sort(); //A'dan Z'ye yada 1'den N değerine doğru sıralar.             sayilarim.Reverse(); //Sort metoduna göre tersine sıralar. Büyükten küçüğe             bool silmeIslemiSonucu= sayilarim.Remove(100); // list içindeki 100 değerini bunlur siler            int silinenAdet= sayilarim.RemoveAll(i=> i>3); // i, 5'ten büyükse sil             sayilarim.RemoveAt(2); //2.indisteki veriyi siler             sayilarim.Clear();//listeyi temizler              Console.ReadLine();          }     }

Min,Max,Sum kullanımı

    class Program     {         static void Main(string[] args)         {              List<int> sayilarim = new List<int>();             sayilarim.Add(1);              int[] eklenecekDizi = new int[4];             eklenecekDizi[0] = 2;             eklenecekDizi[1] = 3;             eklenecekDizi[2] = 4;             eklenecekDizi[3] = 5;              sayilarim.AddRange(eklenecekDizi);               int enyuksekSayi= sayilarim.Max();             int endusukSayi = sayilarim.Min();             int toplam = sayilarim.Sum();              Console.ReadLine();          }     }

Diğer Listeler

    class Program     {         static void Main(string[] args)         {              List<int> sayilarim = new List<int>();             sayilarim.Add(1);              int[] eklenecekDizi = new int[4];             eklenecekDizi[0] = 2;             eklenecekDizi[1] = 3;             eklenecekDizi[2] = 4;             eklenecekDizi[3] = 5;              sayilarim.AddRange(eklenecekDizi);               int enyuksekSayi= sayilarim.Max();             int endusukSayi = sayilarim.Min();             int toplam = sayilarim.Sum();              //HASH TABLE - GENERIC OLMAYAN DAVRANIŞ             Hashtable htlist = new Hashtable();             htlist.Add(1, "Bir"); //object key ve object value ister... sol tarafa key yazarız. key tekil olmalıdır yani 2 kez kullanılmamalıdır             htlist.Add(2, true);             htlist.Add(3, "ÜÇ");              //DICTIONARY<TKEY, TVALUE>             Dictionary<int, string> dictionaryList = new Dictionary<int, string>();             dictionaryList.Add(1,"Bir");             dictionaryList.Add(2, "İki");             dictionaryList.Add(3, "Üç");              Dictionary<string, string> dictList = new Dictionary<string, string>();             dictList.Add("Yes", "Evet");             dictList.Add("No", "Hayır");              bool sonuc=dictionaryList.Remove(1); //key ister bu keyi bulur ve silerse true değerini döner.             bool sonuc2 = dictionaryList.Remove(1); // daha önce sildiğimizden bu sefer bulamayacak false değeri dönecek.              Console.WriteLine(dictionaryList[2]); //2 key değeridir ekrana value değerini yazacaktır yani İki yazacaktır. keyi bulamazsa hata döndürür.             dictionaryList[3] = "Üç değil dört"; //içerideki 3 keyli olan valueyi günceller.             Console.WriteLine(dictionaryList[3]); //güncel durumu ekrana yazdırdık.              dictionaryList.ContainsKey(1); //bool değer döndürür key değerini bulursa             dictionaryList.ContainsValue("iki"); //bool değer döndürür value değeri bulursa.             //kontrol yapıları yani if/else yapılarıyla kontrol işlemlerini gerçekleştirip remove gibi işlemlerde programımızın hata vermemesini sağlarız.              foreach (KeyValuePair<int,string> item in dictionaryList)             {                 Console.WriteLine("{0} - {1}", item.Key, item.Value);             }              dictionaryList.Clear(); //liste tamamen boşaltıldı.               SortedList<int, string> sortedList = new SortedList<int, string>();             sortedList.Add(1, "Bir");             sortedList.Add(0, "Sıfır");             sortedList.Add(100, "yüz");             sortedList.Add(2, "İki");             //sorted list içine aldıklarını büyükten küçüğe sıralar              foreach (KeyValuePair<int,string> item in sortedList)             {                 Console.WriteLine("{0} - {1}", item.Key, item.Value);             }               Console.ReadLine();           }     }

Yayımlandı

kategorisi

yazarı:

Etiketler:

Yorumlar

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir