C# İki (2) ve Çok (n) Boyutlu Dizi – Multidimensional Array

C# ile iki (2) veya daha fazla boyutlu dizi tanımlayabiliriz. Çok boyutlu dizileri yani matrisleri kısaca tanımlamak gerekirse satırlara ve sütunlara ayrılmış veri kümeleridir. Bu veri kümeleri bilgileri saklamak amacıyla kullanılır. Diziler ile aynı çalışma mantığına ve özelliklerine sahiptir. Tek farkı içerisinde tanımladığınız boyuta göre birden fazla aynı tipte değişken taşımasıdır.

Şimdi özellikle, iki 2 boyutlu dizileri daha detaylı anlatabilmek için sizlere aşağıdaki görseli ve örneklemeyi hazırladım. Aşağıdaki görselde ki ilk örnek tek (1) boyutlu diziyi, ikinci örnek ise iki (2) boyutlu diziyi temsil eder.

Örnekleme: 10 kişilik bir sınıfın birinci ve ikinci sınav notlarını tek bir dizi içerisinde nasıl saklarız?

Tek (1) Boyutlu Dizi

Tek boyutlu diziler, içerisinde belirlediğimiz sayıda aynı değişken tipine sahip tek bir değer taşıyan yapılardır. Şimdi, aşağıda ki kodu kullanarak 10 tane öğrencinin birinci sınav notlarını sırasıyla içerisinde barındıran bir dizi oluşturalım.

int[] BirinciSınavNotları = new int[10] {80, 65, 95, 45, 75, 65, 75, 10, 35, 30 };

Bu şekilde, “BirinciSınavNotları” adında 10 boyutlu integer tipinde bir dizi tanımladık ve içerisine öğrencilerin birinci notlarını sırasıyla atamış olduk. Bir diğer deyişle, bu şekilde 10 öğrencinin notlarının düzenlendiği bir tablo oluşturmuş olduk.

Şimdi ise bu tablodan yani diziden 5 numaralı öğrencinin notunu öğrenmeye çalışalım. “BirinciSınavNotları[5]” şeklinde çağırdığımız zaman bize 5 numaralı öğrencinin sınav notu olan 65 değerini geri döndürür.

Console.WriteLine(BirinciSınavNotları[5]);

*Tek boyutlu bir dizi kullanarak 10 öğrencinin sadece bir sınav notunun tutulabilmesini sağlayabiliriz. İkinci sınav notlarını tutabilmek için yeni bir dizi daha tanımlamamız gerekmektedir. Ancak 2 boyutlu bir dizi tanımlayarak tek bir dizi içerisinde iki sınav notunu taşıyabiliriz.

İki (2) Boyutlu Dizi Örneği

İki (2) boyutlu diziler, içerisinde belirlediğimiz sayıda aynı değişken tipine sahip iki adet değer taşıyan yapılardır. Şimdi, aşağıda ki kodu kullanarak 10 tane öğrencinin birinci ve ikinci sınav notlarını sırasıyla içerisinde barındıran bir dizi oluşturalım.

int[,] TumSınavNotları = new int[2, 10] {{40,75}, {65,35}, {55,55}, {65,85}, {45,35}, {15,30}, {70,90}, {85,100}, {25,40}, {55,65}};

Bu şekilde, TumSınavNotları adında 2 satır ve 10 sütundan oluşan integer tipinde bir dizi tanımladık ve içerisine öğrencilerin birinci ve ikinci sınav notlarını sırasıyla atamış olduk. Bu yaptığımız işlemi ise şu şekilde açıklayabiliriz. Sütundaki 10 index’i 10 adet öğrenciyi, satırda ki 0 index’i öğrencilerin birinci sınav notlarını 1 index’i ise ikinci sınav notlarını temsil eder. Bu şekilde 10 adet öğrencinin vize ve final notlarının girildiği bir tablo oluşturmuş olduk.

Şimdi ise bu tablodan 5 numaralı öğrencinin final notunu öğrenmeye çalışalım. “TumSınavNotları[1,5]” şeklinde çağırdığımız zaman bize 1 indexteki final notlarından 5 indexindeki öğrencinin notunu geri döndürecektir.

Console.WriteLine(TumSınavNotları[1, 5]);

Biz örneklerimizde tek ve iki boyutlu dizileri örnek kullanarak anlatmış olsak ta çok boyutlu diziler genellikle 1, 2 ve 3 boyutlu dizilerden oluşur.

İki (2) Boyutlu Dizi Tanımlama

int[,] array = new int[4, 2];

Üç (3) Boyutlu Dizi Tanımlama

int[, ,] array1 = new int[4, 2, 3];

İki (2) Boyutlu Dizi Değer Atama

int[,] array5;

array5 = new int[,] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } };

İki (2) Boyutlu Dizi Belirli Bir Diziye Değer Atama

array5[2, 1] = 25;

İki (2) Boyutlu Dizi Değer Alma

int elementValue = array5[2, 1];

2 comments

  1. İki boyutlu dizi örneği ne yazık ki yanlış. Çok boyutlu dizi tanımlamalarında örneğin iki boyutlu bir dizi tanımlanıyor olsun. tanımlama : int[,] array = new int[4, 2]; bu noktada 4(ROW/SATIR) ve 2(COLUMN/SÜTUN) şeklinde tanımlanmış olur. Vermiş olduğunuz tablo ise tam 90 derece sola döndürülmeli ve sütun yazdığınız yer satır, satır yazdığınız yer sütun olmalıdır. Dileyenler microsoft docs üzerinden konuyu araştırabilir. https://docs.microsoft.com/tr-tr/dotnet/csharp/programming-guide/arrays/multidimensional-arrays
    Lütfen insanları yanlış bilgilendirmeyelim. Konuyu okuyan arkadaşlar da bu noktalara dikkat etsinler, yanlış öğrenmesinler.

Leave a Reply

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir