Sesli Özet
← Ünite 11

Ünite 11: Diziler — Sesli Özet

Dinleme Premium'a özel. 1. ünitenin sesli özeti ücretsiz; bu ünitenin seslendirme metni de aşağıda ücretsiz okunabilir.
Metni oku

Diziler, aynı türden birden fazla veriyi tek bir değişken ismi altında gruplayarak saklamamıza olanak tanıyan temel veri yapılarıdır. Her bir değer için ayrı değişken tanımlamak yerine, diziler sayesinde veriler sıralı bir şekilde organize edilebilir. C# dilinde diziler 'System.Array' isim uzayı altında tanımlanır. Bir dizi tanımlarken dizinin veri tipi, ismi ve eleman sayısı belirtilmelidir. En yaygın söz dizimi 'tip[] diziAdı = new tip[büyüklük]' şeklindedir. Burada 'new' anahtar sözcüğü bellekte dizinin eleman sayısı kadar yer ayrılmasını sağlar. Dizi bildirimi ve bellek tahsisi aynı satırda yapılabileceği gibi, farklı satırlarda da gerçekleştirilebilir. Dizilerde elemanlar soldan sağa doğru 0'dan başlayan indeks numaralarıyla takip edilir. Eğer dizi elemanları önceden belliyse, 'new' anahtar sözcüğü kullanılmadan 'int[] sayilar = {2, 4, 6, 8};' şeklinde doğrudan değer ataması yapılarak da tanımlama gerçekleştirilebilir. Dizi elemanlarına değer atarken indeks numarası köşeli parantez içinde belirtilir. Örneğin 'gunler[0] = "Pazartesi";' ifadesi dizinin ilk elemanına erişimi sağlar. Diziye değer atarken en kritik nokta değişken tipine uygun veri girişi yapmaktır; string dizisine int değer atanamaz. Dizi kopyalama işlemleri için 'Copy()', 'CopyTo()' ve 'Clone()' metotları kullanılır. 'CopyTo()' metodu kaynak diziyi hedef diziye belirli bir indeksten itibaren kopyalar. 'Copy()' metodu ise kaynak dizi, hedef dizi ve kopyalanacak eleman sayısı parametrelerini alır. 'Clone()' metodu ise dizinin tam bir kopyasını oluşturur ancak 'object' tipinde döndüğü için tip dönüşümü gerektirir. Dizi tanımlandıktan sonra eleman eklemek için 'SetValue(değer, indeks)' metodu kullanılabilir. Alternatif olarak, doğrudan indeks numarası kullanılarak '=' operatörü ile de atama yapılabilir. Bu iki yöntem arasında performans açısından belirgin bir fark yoktur. Dizilerden eleman silmek için 'Array.Clear()' metodu kullanılır. Bu metot üç parametre alır: dizi adı, başlangıç indeksi ve silinecek eleman sayısı. Önemli bir nokta şudur ki, bu işlem dizinin bellekteki boyutunu değiştirmez; sadece ilgili elemanların değerlerini temizler. String dizilerde boşluk, sayısal dizilerde ise 0 değeri atanır. Sıralama işlemleri için 'Array.Sort()' metodu kullanılır. Bu metot sayısal dizileri küçükten büyüğe, metinsel dizileri ise alfabetik (A'dan Z'ye) olarak sıralar. Eğer sıralamayı tersine çevirmek gerekirse 'Array.Reverse()' metodu kullanılır. 'Reverse()' metodu verileri sıralamaz, sadece mevcut dizinin eleman sırasını tersine çevirir. Diziler tek ve çok boyutlu olarak ikiye ayrılır. Çok boyutlu dizilerde virgül (,) operatörü kullanılarak boyut belirtilir. Matris diziler, dikdörtgensel bir yapıya sahiptir ve her satırda eşit sayıda eleman bulunur. İndeksleme 'dizi[satır, sütun]' mantığıyla çalışır. Düzensiz diziler (jagged arrays) ise her satırın farklı uzunlukta olabildiği iç içe dizi yapılarıdır. Tanımlanırken 'tip[][] diziAdı = new tip[satırSayısı][]' söz dizimi kullanılır. Bu yapıda her bir satır aslında kendi başına ayrı bir dizi olarak tanımlanır, bu da esnek bir veri depolama alanı sağlar.