C# Arrays (Diziler)

Merhabalar,

Daha önceki serilerimde yeni bir işe başladığımdan bahsetmiştim. Bu iş beni gerçekten heycanladırıyor çünkü sürekli öğrenmek zorunda kalmasamda yeni teknoloji çözümlerinden veya işe yarayabilecek yazılımsal kütüphanelerden bahsedildiği bir ortam. Kulağıma takılanı ve işime ilerde yarayabilir dediklerimi araştırmak üzere notlarıma alıyorum. O teknolojilerle ilgili ayrıca blog serilerine başlayacağım. Ama ilk hedefim C# serisini bitirmek olacak.

Bu hafta aklıma gelen blog serimi nasıl zenginleştirebilirim veya ne gibi özellik katabilirim diye düşünürken sosyal mesaj uygulamalarında olan Pin’leme özelliği aklıma geldi. Açıkçası bir duyuru veya bir soru sormak için genelde gruba sonradan girenlerinde görmesini sağlayacak bir özellik. Benim bu serimde motivasyon özelliği vardı şimdi de Pinle’me özelliği gelmiş oldu. Hedefim Pin’lediğim konuları daha sonra detaylı bir şekilde ele almak. Bu sayede bloguma içerik üretmek için malzemede hazır olacak. Pin’leme özelliği formatı ise aklıma gelen veya not aldığım yazılım veya teknoloji ile ilgili güzel soruları buraya pinlemek olacak. Hadi şimdi serimize devam edelim.

Her seride olduğu gibi bu seriye ilham veren motivasyon cümlesi:

“Hiç beklemediğin anda açılır kapılar. Pes etme, devam et”

Bir önceki serimde Akış Kontrol Mekanizmalarını ele almıştım. Hatırlamak amacıyla konu başlıkları nelerdi anımsayalım. Seriye buradan ulaşabilirsiniz.

  • Koşul ifadeleri
  • Desen Eşleştirme (Pattern Matching) -> C# 7.0 versiyonu ile gelen özellikler

Diziler (Arrays)

  • Bellekte ard arda yer alan aynı türden nesneler kümesi
  • C# dilinde bütün diziler System.Array sınıfından türer.
  • Bir dizinin boyutu bir kez belirledikten sonra artık değiştirilemez.

Çok Boyutlu (Multidimensional) Diziler

  • Her elemanı bir dizi şeklinde olur
  • İki tür çok boyutlu diziler var; Matris ve Jagged

Düzensiz Diziler (Jagged Arrays)

  • Her elemanı ayrı bir dizidir
  • Matris dizilerinden tek farkı sütün sayısının sabit olmaması

System.Array Sınıfı

Bu sınıfından türemiş birçok yararlı metotlar ve özellikler var. Bunlar;

Özellik

IsFixedSizeDizinin eleman sayısının sabit olup olmadığını döner (bool)
IsReadOnlyDizinin elemanlarının sadece okunulabilir olup olmadığını döner (bool)
LengthDizinin eleman saysını döner (int)
RankDizinin boyutunu döner (int)

Metotlar

BinarySearchTek boyutlu dizide BinarySearch algoritmasına göre arama yapar
ClearDizinin elemanlarını varsayılan değere çeker
CloneDizinin bit bit kopyasını çıkarır
CopyDizinin bir bölümünü başka bir diziye kopyalar. Gerekli tür dönüştürme ve boxing(kutulama) işlemi yapılır
CopyToBir dizinin belirlenen kısmını başka bir diziye kopyalar
GetLenghtDizideki eleman sayısını verir
GetValueDizideki ilgili elamanı verir
IndexOfDizi içindeki ilk değerin görüldüğü indeksi verir
ReverseDiziyi tersine çevirir.
SetValueBir dizinin bir elemanına değer atar
SortBir boyutlu dizileri sıralar
CreateInstanceYeni bir dizi nesnesi oluşturur

Diziler serisinin sonuna geldik. Dizilerin referans tip olduğunu unutmuyoruz. Diziler sayesinde programlarımızda aynı tipten çok fazla değişkeni kolaylıkla yönetip saklayabiliriz. Diziler ayrıca projelerimizdeki programlamada bizlere esneklik sağlar.

Bir sonraki serimde RoadMap’e bağlı kalarak Metotlar ve Fonksiyonlar(Method and Functions) hakkında edindiğim bilgileri paylaşıyor olacağım. Görüşmek dileğiyle.

Kaynaklar:

Her Yönüyle C# 7.0, Sefer Algan, Pusula Yayincilik,

https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/arrays/

Leave a Comment