Tarayıcınız JavaScript! desteklememektedir.

C# ArrayList Kullanimi 1

Merhaba Arkadaslar,

Bu makalemizde, C# ile ArrayList kullanimini inceleyecegiz.

Öncelikle, nedir bu ArrayList?
ArrayList, verileri saklamak için kullandigimiz Collections nesnesidir.
ArrayList, Dinamik Dizi anlamina gelmektedir, ve Dinamik Dizi olmasi bize ciddi kolayliklar sunar. En önemli kolayligi Genisleme Özelligidir.

Genisleme Özelligi

 Mesela herhangi bir veri türünden tanimladigimiz diziye, tanimladigimiz esnada eleman sayisi vermemiz gerekiyordu ve bu çogu zaman bizi sikintiya sokuyordu.

Mesela, int türünden bir dizi tanimlayalim ve bu dizimizin 5 tane elemani olsun.

int[]SayiDizisi = new int[5];// 1.ci tanim
int[] sayiDizisi = new int[] {1,2,3,4,5 };//2.ci tanim

Her 2 tanimda da baslangiç ta eleman sayisini belirtmek zorundayim ve bu benim için söyle bir problem olabilir:

sayiDizisi[5] = 12


IndexOutOfRangeException hatasina düstü. (IndexOutOfRangeException ile alakali makalemizi okumanizi öneririm.)

 

 

Peki, biz tanimladigimiz dizinin eleman sayisinin genislemesini istemez miydik? Bence isterdik.

Iste ArrayList bu konuda imdadimiza yetisiyor. ArrayList (Dinamik Diziler) baslangiçta herhangi bir kapasite vermek zorunda olmadigimiz, ekledigimiz elemanlara göre otomatik olarak genisleyen bir yapiya sahiptir. Kafaniz karismasin, hemen bir örnek yapalim.

ArrayList Kullanimi

Öncelikle, ArrayList'in Collections kütüphanesi ile çalistigini belirtmekte fayda var.

using System.Collections

ArrayList Object türde bir yapi. Dolayisi ile herhangi olusturulma esnasinda herhangi bir veri türü belirtmeyiz. Bu bizim için söyle bir kullanim saglar;

Ayni dizi içerisinde hem int hem string hem bool kisacasi her veri türünden elemanlar ekleyebiliriz.

ArrayList tanimi ve kullanimi, tek/çok boyutlu dizilerden daha farkli, söyle ki;

ArrayList liste = new ArrayList(); // ArrayList Class'indan yeni bir nesne türettik.(Instance)
liste.Add("Istanbul");//string veri türünden bir eleman ekledik.
liste.Add(34);//int türünden eleman ekledik.
liste.Add(true);//bool türünden eleman ekledik.


Listenin içindeki elemanlara erismek ya da ekrana yazdirmak istersek ne yapmamiz gerekir?
For, foreach, while, do while kisacasi istedigimiz döngüyü kullanarak yapabiliriz. Mesela;

 

for (int i = 0; i < liste.Count; i++)
{
Console.WriteLine(liste[i]);
}
foreach (var item in liste)
{
                Console.WriteLine(item);
}

Yukarida da gördügünüz gibi her iki kullanimda bizim istedigimiz sonucu elde etmemizi saglayacak

ArrayList'lerle de index numarasi kullanimi geçerli. Yani;

liste[0] // Bu liste dizimizin ilk elemani olan Istanbul degerini bize getirecektir.

Bilgi: Index numaralarinin 0'dan basladigini unutmayalim. Örnegin 4 elemanli bir dizinin toplam 3 indexi vardir.

ArrayList içerisindeki eleman/lari silme

1) Remove: Bize Object olarak hangi elemani silmesini istedigimizi sorar. Yani buraya Istanbul yazarsak, 0.ci index, 1.ci elemanimiz silinecektir.

Örn. liste.Remove("Istanbul");

2) RemoveAt: Bize hangi index numarasindaki elemani silmesini istedigimizi sorar. Yani buraya 1 yazarsak, 1.ci indeximizdeki 34 degeri silinecektir.

Örn. liste.RemoveAt(34);


3) RemoveRange: Bize hangi index numarasindan baslayip kaç adet eleman silmek istedigimizi sorar. Yani buraya 0,1 yazarsak, 0.ci indeximizdeki Istanbul ve 1.ci indeximizdeki 34 degerleri silinecektir.

Örn. liste.RemoveRange(0,1);

ArrayList eleman sayisini fixleme (FixedSize)

Pekala, eger eleman sayisini sabitlemek istersek ne yapmamiz gerekir?

Bu konuda imdadimiza yetisen bir fonksiyonumuz var: FixedSize. Kullanimina bakalim;

liste = ArrayList.FixedSize(liste); // Liste isimli diziye su ana kadar kaç eleman eklediysek, yani eleman sayisi kaçsa, o sayiya esitle.


Fixleme islemini yaptiktan sonra eger eleman eklemek istersek söyle bir hata aliriz:

 

Koleksiyon sabit bir boyuta sahipti.

Arkadaslar, ArrayList ile alakali makalelere devam edecegim. Takildiginiz yerlerde yorum yazmaniz yeterli.

Kod'la kalin...