C# Çok Boyutlu Diziler (Multidimensional Arrays)
Çok boyutlu diziler, birden fazla boyutta veri saklamamıza olanak tanıyan veri yapılarıdır. C# dilinde çok boyutlu diziler genellikle 2 veya 3 boyutlu olarak kullanılır. Bu yazıda, çok boyutlu dizilerin tanımlanmasını, oluşturulmasını ve kullanılmasını örneklerle açıklayacağız.
Çok Boyutlu Diziler Nedir?
Çok boyutlu diziler, her boyutta farklı bir düzende veri saklar. Örneğin, 2 boyutlu bir dizi tablo gibi düşünülebilir ve satır/sütun düzeninde veriler içerir. Daha fazla boyut, daha karmaşık veri yapıları oluşturmak için kullanılabilir.
Çok Boyutlu Dizi Tanımlama ve Oluşturma
Çok boyutlu bir dizi tanımlamak için, veri türünden sonra her boyut için virgülle ayrılmış köşeli parantezler ([,]
) kullanılır. Dizi oluşturulurken her boyutun boyutu belirtilir veya başlangıç değerleri atanır.
// 2 boyutlu dizi tanımlama ve oluşturma int[,] matrix = new int[3, 3]; // 3x3 boyutlu bir dizi // 2 boyutlu diziye başlangıç değerleri atama int[,] numbers = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
Çok Boyutlu Dizinin Elemanlarına Erişim
Çok boyutlu dizinin elemanlarına erişmek için her boyut için bir indeks belirtilir. İndeksler sıfırdan başlar.
int[,] matrix = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } }; // İlk satır, ikinci sütundaki eleman Console.WriteLine(matrix[0, 1]); // 2 // Üçüncü satır, üçüncü sütundaki eleman Console.WriteLine(matrix[2, 2]); // 9
Çok Boyutlu Dizilerle Döngü Kullanımı
Çok boyutlu dizilerde her elemanı işlemek için iç içe döngüler kullanılır. Örneğin:
int[] matrix = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } }; // Tüm elemanları yazdırmak için iç içe döngüler for (int i = 0; i < matrix.GetLength(0); i++) // Satır sayısı { for (int j = 0; j < matrix.GetLength(1); j++) // Sütun sayısı { Console.Write(matrix[i, j] + " "); } Console.WriteLine(); // Yeni satıra geç }
Dizi Özellikleri ve Metotları
GetLength(boyut):
Belirtilen boyuttaki eleman sayısını döndürür.Rank:
Dizinin boyut sayısını döndürür.
int[,] matrix = new int[3, 4]; Console.WriteLine($"Satır sayısı: {matrix.GetLength(0)}"); // 3 Console.WriteLine($"Sütun sayısı: {matrix.GetLength(1)}"); // 4 Console.WriteLine($"Dizinin boyutu: {matrix.Rank}"); // 2
Örnek: Bir Tabloyu Yazdırma
Bir çok boyutlu diziyi tablo formatında ekrana yazdıran örnek:
int[,] grades = { { 85, 90, 78 }, { 88, 92, 80 }, { 95, 89, 84 } }; Console.WriteLine("Notlar Tablosu:"); for (int i = 0; i < grades.GetLength(0); i++) // Satır sayısı { for (int j = 0; j < grades.GetLength(1); j++) // Sütun sayısı { Console.Write(grades[i, j] + "\t"); // Elemanları tab aralığıyla yazdır } Console.WriteLine(); // Satır sonu }
Programın Çıktısı
Notlar Tablosu: 85 90 78 88 92 80 95 89 84
Sonuç
Çok boyutlu diziler, tablo veya matris gibi verileri düzenli bir şekilde saklamak ve işlem yapmak için idealdir. İç içe döngülerle bu dizileri işlemek kolaydır. Bu yapılar, oyun geliştirme, veri analizi ve bilimsel hesaplamalar gibi alanlarda yaygın olarak kullanılır. Pratik yaparak bu konsepti daha iyi anlayabilir ve projelerinizde etkili bir şekilde kullanabilirsiniz.