C# Dizi Eğitimi: Oluşturma, Bildirme, Başlatma
⚡ Akıllı Özet
C# dizileri, aynı veri türünü paylaşan sabit boyutlu bir eleman koleksiyonunu tek bir değişken adı altında saklar. Her eleman sıfır tabanlı bir indekste yer alır, bu nedenle değerlerin bildirilmesi, başlatılması ve erişilmesi hızlı ve tahmin edilebilir olur.

C#'ta Diziler nedir?
Dizi, bir koleksiyonu veya bir dizi öğeyi depolamak için kullanılır. Bu elemanlar aynı tipte olacaktır.
Örneğin, bir Tamsayı değer diziniz varsa, dizi [1, 2, 3, 4] gibi bir değer koleksiyonu olabilir. Burada dizideki eleman sayısı 4'tür.
Aynı türdeki değerlerin bir koleksiyonunu depolamak istediğinizde diziler kullanışlıdır. Yani bir bildirimde bulunmak yerine değişken her öğe için yalnızca bir değişken bildirebilirsiniz.
Bu değişken, dizinin elemanlarının saklanmasından sorumlu olacak bir diziye veya eleman listesine işaret edecektir.
C#'ta dizilerle nasıl çalışabileceğimize bakalım. Örneğimizde bir Tamsayılar dizisi bildireceğiz ve onlarla buna göre çalışacağız.
Aşağıdaki kodun tamamının Program.cs dosyasına yapıldığını unutmayın.
) 1 Adım Bir dizi bildirmek – İlk adım bir dizi bildirmektir. Aşağıdaki kod örneğiyle bunu nasıl başarabileceğimizi görelim.
Code Açıklama:-
- İlk kısım, veri tipi. Dizide kullanılan öğelerin türünü belirtir. Yani bizim durumumuzda bir Tamsayılar dizisi yaratıyoruz.
- Dizinin sıralamasını belirten ikinci kısım [ ]. (Sıra, dizinin içereceği öğe sayısını belirten bir yer tutucudur)
- Sonraki, bizim durumumuzda 'değerler' olan dizinin adıdır. Yeşil dalgalı bir alt çizgi gördüğünüzü unutmayın, bu konuda endişelenmeyin. Bu sadece .Net'in bir dizi bildirdiğinizi ancak onu hiçbir yerde kullanmadığınızı söylemesidir.
) 2 Adım Bir sonraki adım diziyi başlatmaktır. Burada dizinin tutacağı değer sayısını belirteceğiz. Ayrıca dizinin her elemanına değer atayacağız.
Code Açıklama:-
- Öncelikle dizinin tutacağı eleman sayısını 3 olarak belirliyoruz. Yani köşeli parantez içerisinde dizinin 3 eleman tutacağını söylüyoruz.
- Ardından dizinin her elemanına değer atıyoruz. Bunu, değişken adını + dizideki indeks konumunu belirterek yapabiliriz. Yani values[0], dizinin ilk konumuna bir değer depoladığımız anlamına gelir. Benzer şekilde, ikinci konuma erişmek için values[1] gösterimini kullanırız ve bu şekilde devam eder.
not: – Dizilerde dizin konumu 0'dan başlar.
) 3 Adım Şimdi dizinin tek tek öğelerini Konsolda görüntüleyelim. Bunu başarmak için aşağıdaki kodu ekleyelim.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Program { static void Main(string[] args) { Int32[] value; value=new Int32[3]; value[0]=1; value[1]=2; value[2]=3; Console.WriteLine(value[0]); Console.WriteLine(value[1]); Console.WriteLine(value[2]); Console.ReadKey(); } } }
Code Açıklama:-
Bu, öğenin her değerini konsola göndermek için Console.WriteLine yöntemini kullandığımız basit kısımdır.
Yine, her bir öğeye dizin konumuyla birlikte dizi değişkeni adının yardımıyla eriştiğimizi unutmayın.
Yukarıdaki kod düzgün bir şekilde girilip program çalıştırıldığında aşağıdaki çıktı görüntülenecektir.
Çıktı:
Çıktıdan, dizinin tüm değerlerinin Konsolda görüntülendiğini görebilirsiniz.
C#'ta foreach kullanarak bir diziyi nasıl döngüye alabilirsiniz?
Her öğeyi indeksine göre okumak işe yarar, ancak bir dizi çok sayıda değer içerdiğinde zahmetli hale gelir. `foreach` döngüsü, bir dizinin her öğesini sırayla ziyaret etmenin daha temiz bir yolunu sunar. tracKendinize bir indeks değişkeni atayın.
`foreach` döngüsü, dizideki her öğeyi tek tek alır ve bir döngü değişkenine kopyalar. Daha sonra bu değişkeni döngü gövdesi içinde kullanırsınız. Döngü son öğede otomatik olarak durduğu için, `foreach` dizinin sonundan sonra okuma riskini ortadan kaldırır.
using System; namespace DemoApplication { class Program { static void Main(string[] args) { Int32[] values = new Int32[3] {1, 2, 3}; foreach (Int32 item in values) { Console.WriteLine(item); } Console.ReadKey(); } } }
Yukarıdaki örnek, üç tamsayıdan oluşan bir diziyi tanımlayıp başlatıyor ve ardından foreach döngüsüyle bu diziyi dolaşıyor. Her geçişte değişkeni değiştiriyor. madde Sonraki değeri alır ve Console.WriteLine ile yazdırır. Çıktı, ayrı satırlarda 1, 2 ve 3 sayılarıdır.
Dizilerle foreach döngüsü kullanırken hatırlamanız gereken önemli noktalar:
- Döngü değişkeni salt okunur olduğundan, foreach döngüsü değerleri yerinde değiştirmek yerine okumak için daha uygundur.
- Look sırasında öğeleri değiştirmek içinpingBunun yerine, indeks içeren bir for döngüsü kullanın.
- foreach döngüsü tek boyutlu diziler, çok boyutlu diziler ve yinelemeyi destekleyen her türlü koleksiyonla çalışır.
C# Çok Boyutlu Diziler
Şimdiye kadar gösterilen diziler tek boyutludur, yani basit bir değer listesi depolarlar. C# ayrıca, öğeleri satır ve sütunlardan oluşan bir ızgarada düzenleyen çok boyutlu dizileri de destekler. İki boyutlu dizi en yaygın biçimdir ve matrisler, oyun tahtaları ve tablolar gibi veriler için uygundur.
Köşeli parantezlerin içine virgül koyarak iki boyutlu bir dizi tanımlarsınız. Her ek virgül bir boyut daha ekler, bu nedenle int[,] iki boyutlu, int[,,] ise üç boyutludur. Elemanlara her boyut için bir indeks ile ulaşılır.
using System; namespace DemoApplication { class Program { static void Main(string[] args) { int[,] matrix = new int[2, 2] { {1, 2}, {3, 4} }; Console.WriteLine(matrix[0, 0]); Console.WriteLine(matrix[1, 1]); Console.ReadKey(); } } }
Burada matris dizisi iki satır ve iki sütundan oluşmaktadır. matrix[0, 0] elemanı 1 değerini, matrix[1, 1] elemanı ise 4 değerini döndürür. Boyut sayısı dizi tanımlanırken sabitlenirken, her boyutun büyüklüğü dizi oluşturulurken belirlenir.
C# Düzensiz Diziler
Düzensiz dizi, elemanları kendileri de dizi olan bir dizidir. Dikdörtgen çok boyutlu bir dizinin aksine, her iç dizinin farklı bir uzunluğu olabilir; bu nedenle düzensiz diziye genellikle diziler dizisi denir. Bu esneklik, satırların doğal olarak farklı sayıda değer içermesi durumunda faydalıdır.
İki köşeli parantez kümesi kullanarak düzensiz bir dizi tanımlarsınız, ardından her iç diziyi ayrı ayrı oluşturursunuz. Aşağıdaki örnek, ilk satırda üç değer ve ikinci satırda iki değer içeren düzensiz bir dizi oluşturur.
using System; namespace DemoApplication { class Program { static void Main(string[] args) { int[][] jagged = new int[2][]; jagged[0] = new int[] {1, 2, 3}; jagged[1] = new int[] {4, 5}; Console.WriteLine(jagged[0][2]); Console.WriteLine(jagged[1][1]); Console.ReadKey(); } } }
jagged[0][2] ifadesi birinci satırın üçüncü elemanını, yani 3'ü okur ve jagged[1][1] ifadesi ikinci satırın ikinci elemanını, yani 5'i okur. Her satır ayrı bir dizi olduğundan, düzensiz diziler satır uzunlukları değiştiğinde belleği verimli kullanır, ancak her iç diziyi başlatmak için fazladan bir adıma ihtiyaç duyarlar.




