Tarayıcınız JavaScript! desteklememektedir.

C# Stack (Yigin) Kullanimi

Merhaba Arkadaslar,

Projelerimizde çok sik kullanmadiginiz, çok fazla karsilasmadigimiz bir Collections Stack.

Stack nedir?

Stack, Türkçe anlami yigin olan, son giren ilk çikar mantigiyla çalisan bir collections'dir.

Örnek verecek olursak,
Otobüs, metrobüs, minibüs vs diye siralayabiliriz. Nasil mi? Söyle ki;
Kalabalik bir durakta otobüs bekliyorsunuz, otobüs gelince biniyorsunuz, en son binen sizseniz, ilk siz inersiniz. Çünkü otobüste bir insan yigini söz konusu:)

Iste Stack(Yigin) tam olarak bu mantikla çalisiyor.
Generic ve Non-Generic kullanimlari mevcut. Hemen bakalim:

Non-Generic Stack Kullanimi
Non-Generic kullandigimizda,Object türünden veri ekleyebiliriz. String,DateTime,int,float,decimal,double vs. Object ile çalismak biraz sikintili bir durum, nedeni ise UnBoxing. 

Kendisi using System.Collections kütüphanesi ile çalisiyor. Öncelikle kütüphanemizi ekleyelim.

 Stack yigin = new Stack();
            yigin.Push("Istanbul");
            yigin.Push(true);
            yigin.Push(DateTime.Now);
            yigin.Push(34);

***** Stack, List,ArrayList vs gibi Add fonksiyonu ile eleman eklenen bir yapi degil. Eleman eklemek için Push() fonksiyonunu kullanmamiz gerekir.

Yukarida gördügümüz gibi, object türünden oldugu için String,Bool,DateTime,int türünden verileri eklememiz herhangi bir problem teskil etmedi.

***** Stack, Generic & Non-Generic farketmeksizin Indexleyici kullanmadigi için, ekledigimiz herhangi bir bilginin index numarasina erisemeyiz.

***Stack'e ekledigimiz tüm verileri silmek için Clear() fonksiyonunu kullanmaliyiz.

***Peek son kaydin bilgisini kullanir, ancak yiginda birakir, silmez.
***Pop en son eklenen kaydin bilgisini getirir, ancak yigindan ayirir, siler.

Eger illa da index numaralari ile islem yapacaksak;

object[] dizi = yigin.ToArray();

Yukaridaki gibi bir kullanim ile, yiginimizi object türünden tanimladigimiz bir diziye aktarip index numaralari ile islem yapabiliriz.

Kod'la kalin...