C# Çok Boyutlu Diziler (Multidimensional Arrays)
Bu yazımızda sizlere düzenli ve düzensiz diziler hakkında bilgiler vereceğiz.
- İki türde çok boyutlu dizi bulunur. Her boyutta eşit miktarda elemanın olduğu düzenli diziler (matrisler) ve her boyutta farklı sayıda eleman barındıran düzensiz diziler (jagged arrays). Aslında düzensiz dizilerin elemanlarıda dizi olan dizilerdir.
- Çok boyutlu dizi tanımlaması yaparken “[ , , ]” şeklinde yazılır.
Düzenli Diziler (matrisler)
1 | int[,] dizi2d = new int[3, 4]; // üç satır ve dört sütundan oluşan dizimizi böyle tanımladık |
Şeklinde tanımlanan bir 3×4’lik dizinin elemanları:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | int[,] dizi2d = new int[3, 4]; dizi2d[0, 0] = 1; dizi2d[0, 1] = 2; dizi2d[0, 2] = 3; dizi2d[0, 3] = 4; dizi2d[1, 0] = 5; dizi2d[1, 1] = 6; dizi2d[1, 2] = 7; dizi2d[1, 3] = 8; dizi2d[2, 0] = 9; dizi2d[2, 1] = 10; dizi2d[2, 2] = 11; dizi2d[2, 3] = 12; for (int i = 0; i < dizi2d.GetLength(0); i++) { for (int j = 0; j < dizi2d.GetLength(1); j++) { Console.Write(dizi2d[i, j] + "\t"); } Console.WriteLine(); } |
Ekran Çıktısı
1 2 3 | 1 2 3 4 5 6 7 8 9 10 11 12 |
Düzensiz Diziler(Jagged Arrays)
Dizilerin elamanlarıda da farklı diziler olabilme özelliğine sahiptir. Bu durumda tanımlanan dizinin birbirinden farklı boyutlarda alt elemanları olabilir. Bu gibi yapılara düzensiz diziler ismi verilir.
- Matris dizilerinde gördüğünüz üzere her bir satırdaki eleman eşit sayıda kolon elemanı almaktaydı. Düzensiz dizilerde ise bu düzen değişmekte ve her bir satırdaki elemana farklı kolon tanımlaması yapılmaktadır.
1 2 3 4 | int[][] dizi = new int[3][]; dizi[0] = new int[] { 1, 2, 3 }; dizi[1] = new int[] { 4, 5, 6, 7 }; dizi[2] = new int[] { 8, 9 }; |
Düzensiz dizimiz yukarıda ki gibi tanımlanmaktadır.

Düzensiz dizilerde eleman sayısı sabit olmadığından dolayı dizi elemanlarını taramak için Array sınıfının metotları ve ya özellikleri kullanılır. Length özelliği bir dizinin eleman sayısını verir.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | int[][] dizi = new int[3][]; dizi[0] = new int[] { 1, 2, 3 }; dizi[1] = new int[] { 4, 5, 6, 7 }; dizi[2] = new int[] { 8, 9 }; int i = 0; while(i<dizi.Length) { int t = 0; while(t<dizi[i].Length) { Console.Write(dizi[i][t]+"\t"); t++; } Console.WriteLine(); i++; } Console.ReadKey(); } Console.WriteLine(); |
Ekran Çıktısı
1 2 3 | 1 2 3 4 5 6 7 8 9 |
System.Array Sınıfı
Dizi nesneleri System.Array sınıfından türemişlerdir. Dolayısıyla bu sınıfın bazı özellik ve metotlarını bünyelerinde barındırırlar.
Özellikleri şunlardır
IsFixedSizeDizinin elaman sayısının sabit olup olmadığını verir.IsReadOnlyDizinin elamanlarının sadece okunup okunamadığını verir.LengthDizideki elaman sayısını verir.RankDizinin boyutunu verir.
Metotlar
BinarSearchTek boyutlu dizide binary search 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.CopyToBir dizinin belirlenen bir kısmını başka bir diziye kopyalar.GetLengthDizideki eleman sayısını verir.GetValueDizideki ilgili eleman değerini verir.IndexOfDizi içindeki bir değerin ilk görüldüğü indeksi verir.ReverseDiziyi tersine çevirir.SetValueBir dizinin bir elemanına değer atar.SortBir boyutlu dizilerde sıralama yapar.CreateInstanceYeni bir dizi nesnesi oluşturur.
Özelliklerinin Kullanımı
IsFixedSize
1 2 | Array isimler = new[] { "Emre", "Mert", "Oktay", "Ömer", "Ali", "Mustafa" }; Console.WriteLine(isimler.IsFixedSize); // sabit olduğu için true çıktısını yazdıracaktır. |
Ekran Çıktısı
1 | True |
IsReadOnly
1 2 | Array isimler = new[] { "Emre", "Mert", "Oktay", "Ömer", "Ali", "Mustafa" }; Console.WriteLine(isimler.IsReadOnly); // Dizinin elamanlarının sadece okunup okunamadığını verir |
Ekran Çıktısı
1 | False |
Length
1 2 | Array isimler = new[] { "Emre", "Mert", "Oktay", "Ömer", "Ali", "Mustafa" }; Console.WriteLine(isimler.Length); // Dizinin elamanlarının sayısını verir |
Ekran Çıktısı
1 | 6 |
Rank
1 2 | Array isimler = new[] { "Emre", "Mert", "Oktay", "Ömer", "Ali", "Mustafa" }; Console.WriteLine(isimler.Rank); // Dizinin boyutunu verir |
Ekran Çıktısı
1 | 1 |
C# Diziler konumuzda buradan göz atabilirsiniz.
Dilerseniz JAVA ile çok boyutlu diziler yazımıza bakabilirsiniz.




Bu çok boyutlu dizileri sizin deyiminiz ile Multidimensional Arrays, anlamadığım ve hep zorlandığım bir kavramdı. Ta ki sizin yazınızı “Ömer Faruk” isimli arkadaşımın paylaşımından keşfedene kadar. Beni bu cahillikten kurtardığınız için size sonsuz teşekkürler Mustafa Bey. Her şey gönlünüzce olsun…
Sitenizi yeni kesfettim icerikleriniz işlerimi kolaylastırdı Eline sağlık Basarılarının devamını dilerim.