C#, veri koleksiyonlarıyla çalışmak için çeşitli yollar sunar. Diziler, sabit sayıda eleman için verimli bir depolama sağlarlarken, List<T>
sınıfı dinamik boyutlandırma ve daha fazla esneklik sunar. Her yaklaşımın güçlü ve zayıf yönlerini anlamak, verimli ve sürdürülebilir C# kodu yazmak için çok önemlidir.
İçindekiler
C#’ta Dizilerle Çalışma
C#’taki diziler sabit boyutlu veri yapılarıdır. Bir kez bildirildikten sonra, boyutları değiştirilemez. Bu özellik, eleman sayısı önceden biliniyorsa, bunları bellek açısından verimli hale getirir. Ancak, dizi elemanlarını bildirimden sonra doldurabilirsiniz.
Bir for
döngüsü kullanarak diziye değer ekleme şöyledir:
// Boyutu 5 olan bir tamsayı dizisi bildir
int[] numbers = new int[5];
// Bir for döngüsü kullanarak değerler ekle
for (int i = 0; i < numbers.Length; i++)
{
numbers[i] = i * 10; // Değerleri ata: 0, 10, 20, 30, 40
}
// Dizi elemanlarını yazdır
Console.WriteLine("Dizi elemanları:");
foreach (int number in numbers)
{
Console.WriteLine(number);
}
Dizinin sınırlarının ötesinde bir indekse erişmeye çalışmanın (örneğin, numbers[5]
), IndexOutOfRangeException
hatasına yol açacağını unutmayın.
Dinamik Koleksiyonlar İçin Listelerin Kullanımı
List<T>
sınıfı, dizilere dinamik, yeniden boyutlandırılabilir bir alternatif sağlar. Boyutu, eleman ekledikçe veya kaldırdıkça otomatik olarak ayarlanır ve son boyut bilinmediğinde uygundur.
List<T>
‘ye değer ekleme şöyledir:
// Tamsayıların bir listesini bildir
List<int> numbersList = new List<int>();
// List<T>.Add(T) metodu kullanarak değerler ekle
numbersList.Add(15);
numbersList.Add(25);
numbersList.Add(35);
numbersList.Add(45);
numbersList.Add(55);
// Liste elemanlarını yazdır
Console.WriteLine("nListe elemanları:");
foreach (int number in numbersList)
{
Console.WriteLine(number);
}
// Gerekirse List<T>'yi diziye dönüştür
int[] numbersArrayFromList = numbersList.ToArray();
Console.WriteLine("nListeden oluşturulan dizi:");
foreach (int number in numbersArrayFromList)
{
Console.WriteLine(number);
}
Add()
metodu, elemanları verimli bir şekilde ekler. ToArray()
metodu, gerekirse bir diziye dönüştürmeyi sağlar.
Doğru Yaklaşımı Seçme
En iyi seçim, özel ihtiyaçlarınıza bağlıdır:
- Diziler: Boyut önceden biliniyorsa ve performans çok önemliyse idealdir. Sabit boyutlu koleksiyonlar için daha iyi bellek verimliliği sunarlar.
- Listeler: Boyut bilinmiyorsa veya elemanların sık sık eklenmesi veya kaldırılması gerekiyorsa tercih edilir.
List<T>
esneklik sağlar, ancak çok sayıda ardışık ekleme için performans dizilerden biraz daha düşük olabilir. Bu fark, performansın çok önemli olduğu son derece büyük veri kümeleriyle uğraşılmadıkça genellikle önemsizdir.