Ranges and Indices¶
C# 8.0 ile tanıtılan Ranges (..
) ve Indices (^
) özellikleri, koleksiyonlar üzerinde daha okunabilir ve kısa işlemler yapmanızı sağlar. Ancak, bu özelliklerin yanlış kullanımı beklenmedik sonuçlara veya performans sorunlarına neden olabilir.
1. Anlamlı Kullanımı Göz Ardı Etmek¶
❌ Yanlış Kullanım: Geleneksel yöntemlerle gereksiz karmaşık işlemler yapmak.
var array = new int[] { 1, 2, 3, 4, 5 };
var lastThree = array.Skip(array.Length - 3).ToArray();
✅ İdeal Kullanım: Indices özelliğini kullanarak işlemleri basitleştirin.
var array = new int[] { 1, 2, 3, 4, 5 };
var lastThree = array[^3..];
2. Negatif Indices Kullanımını Yanlış Anlamak¶
❌ Yanlış Kullanım: Negatif indekslerin yanlış yorumlanması.
var array = new int[] { 1, 2, 3, 4, 5 };
var invalidIndex = array[-1]; // Derleme hatası
✅ İdeal Kullanım: Indices ile son elemanlara doğru erişim sağlayın.
var array = new int[] { 1, 2, 3, 4, 5 };
var lastElement = array[^1]; // Son eleman
3. Ranges ile Performansı Göz Ardı Etmek¶
❌ Yanlış Kullanım: Büyük veri setlerinde gereksiz kopyalamalar yapmak.
var data = Enumerable.Range(1, 1000000).ToArray();
var subset = data.Skip(100).Take(50).ToArray(); // Gereksiz kopyalama
✅ İdeal Kullanım: Ranges ile performansı optimize edin.
var data = Enumerable.Range(1, 1000000).ToArray();
var subset = data[100..150]; // Kopyalama minimal
4. Koleksiyonların Dışında Ranges Kullanımı¶
❌ Yanlış Kullanım: Ranges ve Indices özelliklerini uygun olmayan veri türlerinde kullanmak.
string text = "Hello World";
var invalidRange = text[^5..]; // Sadece dizi ve liste türlerinde geçerli
✅ İdeal Kullanım: Ranges ve Indices özelliklerini doğru veri türleriyle kullanın.
string text = "Hello World";
var substring = text[^5..]; // Geçerli ve etkili kullanım
5. Start ve End Indices’i Yanlış Tanımlamak¶
❌ Yanlış Kullanım: Başlangıç ve bitiş indekslerini karıştırmak.
var array = new int[] { 1, 2, 3, 4, 5 };
var invalidRange = array[5..3]; // Hata: Bitiş indeksi başlangıçtan önce
✅ İdeal Kullanım: Ranges için doğru başlangıç ve bitiş indekslerini belirleyin.
var array = new int[] { 1, 2, 3, 4, 5 };
var validRange = array[3..5]; // Doğru kullanım
6. Ranges ve Indices’i Birlikte Kullanmayı Göz Ardı Etmek¶
❌ Yanlış Kullanım: Özellikleri birlikte kullanmamak.
var array = new int[] { 1, 2, 3, 4, 5 };
var firstThree = array.Take(3).ToArray(); // Gereksiz karmaşık
✅ İdeal Kullanım: Indices ve Ranges’i birlikte kullanarak daha temiz bir yapı elde edin.
var array = new int[] { 1, 2, 3, 4, 5 };
var firstThree = array[..3]; // İlk üç eleman