C# Generic Stack<T> Kullanımı
Stack<T> yapısı C#'ın generic collection yapılarından biridir. T ile belirttiğimiz tipte elemanlar tutar ve LIFO (Son giren ilk çıkar) mantığıyla elemanları dışarı çıkartır.
Push : Collection nesnemize yeni eleman ekler.
Pop : Collection'a son giren elemanı çekip bu elemanı collection'dan siler.
Peek : Collection'daki nesneyi silmeden son elemanı döndürür.
Şimdi örnek bir stack yapısı geliştirelim:
Çıktı:
Örnek Proje : GenericStackExample.rar
Push : Collection nesnemize yeni eleman ekler.
Pop : Collection'a son giren elemanı çekip bu elemanı collection'dan siler.
Peek : Collection'daki nesneyi silmeden son elemanı döndürür.
Şimdi örnek bir stack yapısı geliştirelim:
public class Person
{
public string Name { get; set; }
public string Surname { get; set; }
public int Age { get; set; }
public override string ToString()
{
return Name + " " + Surname + " Age: " + Age;
}
}
static void Main(string[] args)
{
Stack<Person> personStack = new Stack<Person>();
personStack.Push(new Person()
{ Name = "Ahmet", Surname = "Yilmaz", Age = 21 });
personStack.Push(new Person()
{ Name = "Safak", Surname = "Unel", Age = 26 });
personStack.Push(new Person()
{ Name = "Salih", Surname = "Sayar", Age = 42 });
//Peeked: son eleman silmeden stack'teki son elemana bakiliyor
//Popped: son eleman cekilip siliniyor
Console.WriteLine("Peeked : {0}", personStack.Peek());
Console.WriteLine("Popped : {0}", personStack.Pop());
Console.WriteLine("\nPeeked : {0}", personStack.Peek());
Console.WriteLine("Popped: {0}", personStack.Pop());
Console.WriteLine("\nPeeked : {0}", personStack.Peek());
Console.WriteLine("Popped: {0}", personStack.Pop());
try
{
// eger stack'imiz bosalttiktan sora Peek veya Pop
// metodlarimizi cagirirsak hata aliriz
Console.WriteLine("\nPeeked : {0}", personStack.Peek());
Console.WriteLine("Popped: {0}", personStack.Pop());
}
catch (Exception e)
{
Console.WriteLine("\nError: {0}", e.Message);
}
Console.ReadLine();
}
}
Çıktı:
Örnek Proje : GenericStackExample.rar

0 yorum :
Yorum Gönder