C# Dili Öğrenme Denemeleri-15 Programlama

Önceki anlatımda dizilerden bahsetmiştik, diziler ve koleksiyonlar birbirine benzer yapılardır.  Dizi belirtirken dizinin tipini ve içerisinde kaç eleman barındıracaksa programın yani dizi tanımlama aşamasında dizinin kapasitesi de belirtebiliyorduk. Tabi ilerleyen zamanlarda bunu değiştiremeyebiliyoruz (jagger diziler hariç) .

Bazı programlarda belirttiğimiz eleman sayısını ve büyüklüğünü değiştirmek isteyebiliriz. Bu durumda biz dizi yerine koleksiyonları kullanabiliriz.  Diziler için fazla bir metot bulunmayabiliyor. Yani string işlemlerini çok işlek bir biçimde dizilerde kullanamayabilirsiniz. Bu durumda koleksiyonlara başvurmanız işlemlerinizi daha da hızlandıracaktır.

Tabi dizi ve koleksiyonlarda ortak  olan özellikleri de mevcuttur.

İki  yöntemde de başta belirtirken ne tür değişkenler barındırdığını belli etmek zorundasınız. Tabi belirlenen tip daha sonrasında değiştirmeniz mümkün değildir.

 

Dizi ve koleksiyonlarda her ikisinde de indisle bir biçimde değer atayabiliyoruz.

Dizilerde ve koleksiyonlarda eleman sayısını bulak istediğimizde normal dizide  “ornekdizi.Length” diye bulunurdu aynı şekilde koleksiyonlarda da “ornekkoleks.Count” diye bulunabilir yani aşağıdaki gibi bulunabilir .

C# ta koleksiyonları kişilerin kullanımına göre şekillenmiştir. Aşağıdaki şekli inceleyecek olursanız.

C# koleksiyon tipleri
C# koleksiyonlar

Kullanmakta olduğumuz 5 tip koleksiyonumuz mevcuttur.  Bu beş yapının içerisinde genel itibariyle List ve Dictionary  yapılarını kullanırız. Tabi ihtiyaç dâhilinde bu genellemeyi değiştirebilirsiniz.

Koleksiyon Tipleri

Belirtiğimiz koleksiyonlar üzerinden bir kaç tanımlama ve örnekle açıklarsak işin kolaylığı belirginleşmiş olacaktır.

List Koleksiyonu

Bu koleksiyon tipinde listeler oluşturabilirsiniz, hatta klaslar yardımıyla da oluşturacağınız listeyi şekillendirebilir ve detaylandırabilirsiniz. İlk önce basit bir liste oluşturma ile başlayalım.

Bu şekilde basit liste oluşturulabilir.  Başka bir örneği biraz daha detaylı yapacak olursak aşağıdaki gibi olacaktır.

Yaptığımız örnek tam olarak ne yapabilir diye soracak olursanız. Burada kişiye ait aldığımız bilgileri bir liste halinde kayıt edebiliriz, değere göre sıralamasını yapabilir. İstendiği takdirde değerler dışarıdan da istenebilir ve böylelikle listemizi interaktif güncelleyebilirsiniz. Tabi bununla beraber yapabileceğimiz daha fazla işlemi uygulayabilirsiniz. Yani bir müşteriyi silebilirim ya da ekleyebilirim bununla beraber istediğim işlemleri uygulayabilirim.

Kısaca anlatmak gerekirse ilk önce müşterimi tanımlayacak bir class yarattım. Tipleri de ad, soyadı ve adres için string, borç değeri için de int değeri ile tanımladım.

Daha sonrasında list.Add parametreleri ile gerekli kayıtları yapıp ekrana bir foreach yardımıyla yazdım . Siz de yapabilirsiniz.

Dictionary Koleksiyonu

Dictionary koleksiyonu diğerlerinden farklı olarak bir anahtarı bulunmaktadır. Yani aynı indexte iki farklı değişken tutar. Birine “key”  diğerine de “value”  yani Türkçesi “anahtar”  ve “Değer”  anlamına gelmektedir. Böylelikle birbiri ile ilişkili yapıları kullanırken daha kolay bir şekilde yapabilirsiniz.
Bir Dictionary  koleksiyonu oluştururken  key ve value değerlerini girmelisiniz. Aşağıda gördüğünüz gibi siz de deneyerek bunu uygulayabilirsiniz.

Bu uygulama biçimi bizim diğer değerlerin birbiri ile ilişkilerini sağlamaktadır.

Daha da pratiklik açısında kısa bir uygulama gerçekleştirebilişiniz.

 

Queue ve Stack Koleksiyonları

Queue kelime anlamından da anlaşılacağı gibi bir sıralama koleksiyonudur. Örneğin bir kesiyer düşünün ilk sırada olan ilk ayrılan olarak bilinir.

 

Stack ve Queu Koleksiyonu

Stack  koleksiyonu ise Queue koleksiyonu ile ters anlamdadır. İlk sırada olan en son işleme girer. Bu bir nevi çöpü sıkıştırmaya benzer. En son eklediğiniz çöp en üsttedir ve çöp dökerken ilk çöp atılır.

Bir işlemi yapmak için belli bir miktarda bir sıra oluşturacaksanız bu tam da sizin uygulamalarınızı şekillendirecek biçimde oluşturulmuş bir koleksiyondur. Çünkü burada istediğini belirli sayıda veri işleyebilir geri kalan kısmını sonradan kullanabilirsiniz.

HashSet Koleksiyonu

HashSet koleksiyonu List koleksiyonu ile aynı yapıdadır. Fakat burada bir fark olarak aynı değeri eklediğiniz vakit program onun klonunu listeye eklemede bulunmaz. List koleksiyonunda kullandığınız hemene hemen tüm fonksiyonları bu kullanabilirsiniz.

 

Kısacası HashSet  yapısı diğer koleksiyonlarda olduğu gibi görevleri gören ve bu görevleri aynı zamanda denetleyen bir yapı olduğunu söz etmek mümkün. Çünkü bir içeriğinin aynı zamanda eklenip eklenmeyeceğine de karar veren verir. Bu sebeple eklemek istediğimiz içerik eklendi mi? Sorusunu sorarken boolean tipte bize cevap verir.
Yukarıdaki örneği daha da inceleyecek ve geliştirecek olursak.

 

Evet, böylelikle temel console uygulamalarımızın sonuna da gelmiş bulunduk. Thebookofbilge’de öğrenme denemeleri dememedeki asıl amacım insanların hevesini kırmamak onları buraya çekmek oldu, eğitim şekillendirir insanı hayalinin gücünü görmeyi öğretir. Özellikle de sevmeyi öğretir. Farkında değilsiniz ama arka planda ben de öğreniyorum bazı şeyleri anlatırken ve zamanımın en kıymetli anlarının olduğunun biliyorum. Bizi yeşertecek umutlarınız varsa ardından koşun….

Form  anlatımlarında görüşmek üzere, iyi kalın.

 

Print Friendly, PDF & Email

murat

people belong theirs ideas | ideas change the lives shades . mechatronic is one of my stuff to stay alive

Bir Cevap Yazın