Diziler, C#’ta aynı türden elemanların koleksiyonlarını verimli bir şekilde saklayan temel veri yapılarıdır. Bir dizinin boyutunun nasıl belirlendiğini anlamak, elemanlar arasında yinelemekten dizinin boyutlarına bağlı hesaplamalar yapmak gibi çeşitli programlama görevleri için çok önemlidir.
İçindekiler
- Tek Boyutlu Dizilerin Uzunluğunu Alma
- Çok Boyutlu Dizilerle Çalışma
- Eleman Sayımı İçin LINQ Kullanma (ve Daha Fazlası)
- En İyi Uygulamalar ve Göz Önünde Bulundurulması Gerekenler
Tek Boyutlu Dizilerin Uzunluğunu Alma
Tek boyutlu bir dizinin uzunluğunu belirlemenin en kolay yolu, Length
özelliğini kullanmaktır. Bu özellik, dizideki toplam eleman sayısını doğrudan döndürür.
int[] numbers = { 1, 2, 3, 4, 5 };
int arrayLength = numbers.Length; // arrayLength 5 olacak
Console.WriteLine($"Dizinin uzunluğu: {arrayLength}");
Bu yöntem, basitliği ve hızı nedeniyle tek boyutlu diziler için verimli ve oldukça önerilir.
Çok Boyutlu Dizilerle Çalışma
Çok boyutlu diziler için Length
özelliği yine de toplam eleman sayısını sağlar. Ancak, boyutların uzunluklarını ayrı ayrı gerekiyorsa, GetLength()
yöntemini kullanmalısınız. Bu yöntem, boyut indeksini (0’dan başlayarak) temsil eden bir tamsayı alır ve o boyutun uzunluğunu döndürür.
int[,] matrix = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
int rows = matrix.GetLength(0); // rows 3 olacak
int cols = matrix.GetLength(1); // cols 3 olacak
Console.WriteLine($"Matris {rows} satır ve {cols} sütundan oluşmaktadır.");
Console.WriteLine($"Toplam eleman sayısı: {matrix.Length}"); // matrix.Length 9 olacak
GetLength()
, çok boyutlu dizileri eleman eleman işlerken veya belirli boyut bilgilerine ihtiyaç duyulduğunda çok önemlidir.
Eleman Sayımı İçin LINQ Kullanma (ve Daha Fazlası)
Sadece toplam sayıyı almak için Length
özelliğinden daha az verimli olsa da, LINQ’un Count()
yöntemi daha fazla esneklik sunar. Belirli koşullara bağlı olarak eleman sayımına olanak tanır.
int[] numbers = { 1, 2, 3, 4, 5 };
int arrayLength = numbers.Count(); // arrayLength 5 olacak
Console.WriteLine($"Dizinin uzunluğu: {arrayLength}");
// Çift sayıları sayma:
int evenCount = numbers.Count(n => n % 2 == 0); // evenCount 2 olacak
Bu yaklaşım, belirli kriterleri karşılayan elemanları saymanız gerektiğinde öne çıkar ve bunu basit uzunluk belirlemenin ötesinde değerli bir araç haline getirir.
En İyi Uygulamalar ve Göz Önünde Bulundurulması Gerekenler
- IndexOutOfRangeException:
IndexOutOfRangeException
hatalarından kaçınmak için dizin indeksinizin geçerli aralıkta (0 ilaLength - 1
) olduğundan emin olun. - Sabit Boyut: C#’taki dizilerin oluşturulduktan sonra sabit bir boyutu vardır. Dinamik boyutlu koleksiyonlar için
List<T>
kullanın. - Length ve GetLength: Hem tek hem de çok boyutlu dizilerde toplam eleman sayısı için
Length
kullanın. Çok boyutlu dizilerde ayrı boyut uzunlukları içinGetLength()
kullanın.
Doğru yöntemi seçmek, dizi türünüze ve belirli ihtiyaçlarınıza bağlıdır. Tek boyutlu diziler için Length
en verimli ve önerilen yöntemdir. Çok boyutlu diziler için toplam sayı için Length
ve ayrı boyut boyutları için GetLength()
kullanın. LINQ’un Count()
yöntemi koşullu sayım için esneklik sağlar.