Yükleniyor...

Diziler

Diziler, C# programlamada veri yönetiminin temel taşlarından biridir ve aynı türden verilerin bir arada tutulmasını sağlayan veri yapılarıdır. Diziler sayesinde veriye indeksler aracılığıyla hızlı erişim sağlanır ve algoritmaların etkin bir şekilde çalışması mümkün olur. Özellikle büyük veri kümeleriyle çalışırken, diziler bellek kullanımını optimize eder ve performansı artırır.
C#’ta diziler tek boyutlu, çok boyutlu ve jagged (düzensiz) olarak tanımlanabilir. Tek boyutlu diziler basit veri listeleri için uygundur, çok boyutlu diziler matriks veya tablo yapıları için kullanılır, jagged diziler ise her satırın farklı uzunlukta olduğu koleksiyonlar için idealdir. Diziler OOP prensipleri ile birleştiğinde, sınıflar içinde kullanılabilir ve metodlar arasında kolayca taşınabilir. LINQ ile diziler üzerinde daha karmaşık veri işlemleri de gerçekleştirilebilir.
Bu eğitimde okuyucular, dizilerin oluşturulması, elemanlarının erişimi ve değiştirilmesi, diziler üzerinde döngüsel işlemler ve gerçek dünya uygulamaları ile dizilerin verimli kullanımı konularında bilgi sahibi olacak. Ayrıca, bellek yönetimi, hata önleme ve performans optimizasyonu gibi gelişmiş konular da ele alınacaktır.

Temel Örnek

text
TEXT Code
using System;

class Program
{
static void Main()
{
// 5 elemanlı bir dizi oluşturma ve başlatma
int\[] sayilar = new int\[5] { 10, 20, 30, 40, 50 };

// Diziyi foreach ile dolaşma
Console.WriteLine("Dizi Elemanları:");
foreach (int sayi in sayilar)
{
Console.WriteLine(sayi);
}

// Üçüncü elemanı değiştirme
sayilar[2] = 35;
Console.WriteLine("Üçüncü eleman değiştirildi: " + sayilar[2]);

// Dizideki tüm elemanların toplamı
int toplam = 0;
for (int i = 0; i < sayilar.Length; i++)
{
toplam += sayilar[i];
}
Console.WriteLine("Elemanların Toplamı: " + toplam);
}

}

Bu örnek, tek boyutlu bir diziyi göstermektedir. C# dizilerinde indeksleme sıfırdan başlar; bu nedenle üçüncü elemana erişim sayilar[2] ile yapılır. foreach döngüsü, dizinin tüm elemanlarını güvenli ve okunabilir bir şekilde dolaşmak için idealdir.
Eleman değiştirme ve toplam hesaplama, dizilerin veri manipülasyonuna nasıl olanak tanıdığını gösterir. Length özelliği dizinin boyutunu verir ve döngülerde kullanılabilir. Bu örnek, dizilerle çalışırken olası hataları önlemek için iyi uygulamaları gösterir: indeks aşımı, bellek yönetimi ve kodun okunabilirliği gibi. Gerçek dünya projelerinde bu yöntemler, veri işleme ve algoritma geliştirme için temel bir yapı sunar.

Pratik Örnek

text
TEXT Code
using System;
using System.Collections.Generic;

class Ogrenci
{
public string Isim { get; set; }
public int\[] Notlar { get; set; }

public Ogrenci(string isim, int[] notlar)
{
Isim = isim;
Notlar = notlar;
}

public double Ortalama()
{
int toplam = 0;
for (int i = 0; i < Notlar.Length; i++)
{
toplam += Notlar[i];
}
return (double)toplam / Notlar.Length;
}

}

class Program
{
static void Main()
{
List<Ogrenci> ogrenciler = new List<Ogrenci>
{
new Ogrenci("Ayşe", new int\[] { 80, 90, 85 }),
new Ogrenci("Bora", new int\[] { 70, 75, 80 }),
new Ogrenci("Seda", new int\[] { 90, 95, 100 })
};

foreach (var ogrenci in ogrenciler)
{
Console.WriteLine($"{ogrenci.Isim} ortalama: {ogrenci.Ortalama():F2}");
}
}

}

Bu örnekte, diziler sınıf içinde öğrenci notlarını saklamak için kullanılmıştır. Ortalama metodu, dizideki notların ortalamasını hesaplar. List yapısı, öğrencileri dinamik olarak yönetmeyi sağlar.
OOP ve dizilerin kombinasyonu, kodun daha modüler ve ölçeklenebilir olmasını sağlar. Gerçek uygulamalarda dizilerle çalışırken null veya boş dizileri kontrol etmek önemlidir; aksi takdirde runtime hataları oluşabilir. Bu örnek, öğrenci not sistemi, veri analizi veya raporlama gibi uygulamalarda kullanılabilir.

C# Diziler için iyi uygulamalar ve yaygın hatalar:

  • Dizilere erişimde indeks sınırlarını aşmamak gerekir; aksi halde IndexOutOfRangeException oluşur.
  • Dinamik veri için List kullanmak daha uygundur.
  • foreach döngüsü dizileri güvenli şekilde dolaşmayı sağlar.
  • LINQ kullanımı, diziler üzerinde daha etkili veri işleme sunar.
  • Yaygın hatalar: başlatılmamış diziler, büyük veri setlerinde verimsiz döngüler, sabit boyutlu dizilerin gereksiz kullanımı.
  • Performans ve güvenlik için kullanıcı girişleri validate edilmeli, exception yönetimi yapılmalıdır.

📊 Referans Tablosu

C# Element/Concept Description Usage Example
Tek boyutlu dizi Aynı türden elemanların lineer koleksiyonu int\[] sayilar = new int\[5];
Çok boyutlu dizi Matriks veya tablo yapıları için int\[,] matris = new int\[3,3];
List<T> Dinamik boyutlu dizi List<int> sayilar = new List<int>();
foreach döngüsü Dizileri güvenli şekilde dolaşma foreach(var n in sayilar){ Console.WriteLine(n); }
Length özelliği Dizideki eleman sayısı int toplam = sayilar.Length;

Dizileri iyi kullanmak, C# projelerinde veri işleme ve algoritmaların temelini oluşturur. Diziler, List, Dictionary\ ve LINQ ile birleştirildiğinde, karmaşık veri yapılarının yönetimini kolaylaştırır.
İleri seviye konular: çok boyutlu ve jagged diziler, LINQ sorguları, veri analizi ve optimizasyon teknikleri. Bu bilgi, geliştiricinin projelerinde verimli, güvenli ve ölçeklenebilir çözümler üretmesini sağlar.

🧠 Bilginizi Test Edin

Başlamaya Hazır

Bilginizi Test Edin

Bu konudaki anlayışınızı pratik sorularla test edin.

4
Sorular
🎯
70%
Geçmek İçin
♾️
Süre
🔄
Deneme

📝 Talimatlar

  • Her soruyu dikkatle okuyun
  • Her soru için en iyi cevabı seçin
  • Quiz'i istediğiniz kadar tekrar alabilirsiniz
  • İlerlemeniz üstte gösterilecek