C# ile Dizi ve List Kullanımı

C# ile Dizi ve List Kullanımı

 C# Dünyasında Dizi ve List Macerası: Koleksiyon Yönetimine Giriş

Merhaba sevgili C# dostları! Bugün, C# programlamanın olmazsa olmazlarından, veri koleksiyonlarını yönetmek için kullandığımız iki temel yapıya, dizilere (arrays) ve List yapılarına yakından bakacağız. Hazırsanız, kod dünyasına dalalım ve bu iki kahramanın özelliklerini, ne zaman kullanılacaklarını ve nasıl ustalaşacağımızı keşfedelim.

 Diziler (Arrays): Sabit Boyutlu Dostlarımız

Diziler, aynı türden verileri sıralı bir şekilde saklamak için kullandığımız, sabit boyutlu veri yapılarıdır. Yani, bir dizi oluşturduğunuzda, kaç eleman saklayacağını baştan belirtmeniz gerekir. Bu, dizilerin hem avantajı hem de dezavantajıdır.

Avantajları:

* Hızlı Erişim: Dizideki herhangi bir elemana, indeks numarasıyla (0’dan başlayarak) doğrudan ve hızlı bir şekilde erişebilirsiniz.
* Bellek Verimliliği: Eğer saklayacağınız eleman sayısını biliyorsanız, diziler bellek açısından daha verimli olabilirler.

Dezavantajları:

* Sabit Boyut: Dizinin boyutunu sonradan değiştiremezsiniz. Eğer daha fazla eleman eklemeniz gerekirse, yeni bir dizi oluşturup eski elemanları kopyalamanız gerekir.
* Ekleme/Silme Zorluğu: Dizinin ortasına bir eleman eklemek veya silmek, diğer elemanları kaydırmak anlamına gelir, bu da performansı olumsuz etkileyebilir.

Nasıl Kullanılır?

“`csharp
// Bir integer dizisi oluşturma
int[] sayilar = new int[5]; // 5 elemanlı bir dizi

// Dizinin elemanlarına değer atama
sayilar[0] = 10;
sayilar[1] = 20;
sayilar[2] = 30;
sayilar[3] = 40;
sayilar[4] = 50;

// Dizinin elemanlarını okuma
Console.WriteLine(sayilar[0]); // Output: 10

// Dizi oluştururken değer atama
string[] isimler = { “Ayşe”, “Mehmet”, “Fatma” };
“`

List: Esnek ve Dinamik Koleksiyonlar

List, C#’ın sunduğu, dinamik boyutlu bir koleksiyon yapısıdır. “T”, listenin saklayacağı veri tipini temsil eder (örneğin, `List`, `List`, `List` gibi). Listeler, dizi gibi sabit bir boyuta sahip olmak yerine, eleman ekleme ve çıkarma işlemlerinde otomatik olarak boyutlarını ayarlarlar.

Avantajları:

* Dinamik Boyut: Eleman ekledikçe veya çıkardıkça liste otomatik olarak büyür veya küçülür.
* Kolay Ekleme/Silme: Listeye eleman eklemek (`Add`) veya silmek (`Remove`, `RemoveAt`) oldukça kolaydır.
* Çeşitli Metotlar: Listeler, eleman arama (`Contains`), sıralama (`Sort`), filtreleme (`FindAll`) gibi birçok kullanışlı metot sunar.

Dezavantajları:

* Bellek Kullanımı: Dinamik boyutlarından dolayı, listeler dizilere göre biraz daha fazla bellek kullanabilirler.
* Erişim Hızı: Dizi elemanlarına doğrudan indeksle erişmek kadar hızlı olmayabilirler, ancak pratikte çoğu zaman bu fark hissedilmez.

Nasıl Kullanılır?

“`csharp
// Bir integer listesi oluşturma
List notlar = new List();

// Listeye eleman ekleme
notlar.Add(75);
notlar.Add(80);
notlar.Add(90);

// Listeden eleman silme
notlar.Remove(75); // Değeri 75 olan elemanı siler
notlar.RemoveAt(0); // 0. indeksteki elemanı siler

// Listenin eleman sayısını öğrenme
Console.WriteLine(notlar.Count); // Output: 1

// Listedeki elemanlara erişme
Console.WriteLine(notlar[0]); // Output: 80

// Listedeki elemanları döngü ile yazdırma
foreach (int not in notlar)
{
Console.WriteLine(not);
}
“`

 Ne Zaman Hangisini Kullanmalıyız?

* Dizi: Eğer koleksiyonunuzun boyutunu önceden biliyorsanız ve bu boyutun değişmeyeceğinden eminseniz, diziler iyi bir seçenektir. Performans kritik uygulamalarda da diziler tercih edilebilir.
* List: Eğer koleksiyonunuzun boyutu dinamik olarak değişiyorsa, eleman ekleme ve çıkarma işlemleri sık yapılıyorsa, veya çeşitli metotlara ihtiyacınız varsa, List sizin için daha uygun olacaktır.

 

Diziler ve List, C# programlamada koleksiyon yönetimi için güçlü araçlardır. Her ikisinin de kendine özgü avantajları ve dezavantajları vardır. Projenizin ihtiyaçlarına göre doğru olanı seçerek, daha verimli ve okunabilir kodlar yazabilirsiniz.

Umarım bu yazı, diziler ve List arasındaki farkı anlamanıza ve doğru kararlar vermenize yardımcı olmuştur. Bir sonraki yazıda görüşmek üzere, kodla kalın!

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir