📘 6.5 – Liste Üzerinden Toplam, Ortalama vb. İşlemler
🔹 Açıklama:
Birçok uygulama, kullanıcıdan alınan veriler üzerinde toplama, ortalama alma, en büyük/en küçük değeri bulma gibi işlemler yapmayı gerektirir. Bu işlemler genellikle ListBox veya ComboBox gibi veri gösterim kontrolleri üzerinden gerçekleştirilir.
Bu bölümde öğrenciler:
- ListBox içindeki verileri döngüyle okuyarak matematiksel işlem yapmayı
- Seçili veya tüm öğelerle işlem yapmayı
- Sonuçları Label, MessageBox gibi kontrollerle göstermeyi öğrenecekler
📍 Kullanım Alanları:
- Not hesaplama uygulamaları
- Fatura, harcama, alışveriş sepeti hesaplamaları
- Sayısal analiz ve raporlama uygulamaları
- Anket ve veri değerlendirme sistemleri
🎯 Kazanımlar:
- ListBox verilerini kodla analiz etme becerisi
- Kullanıcının girdiği verileri işleyip anlamlı çıktılar oluşturma
- Sayısal veri güvenliği ve geçerli veri kontrolü
- Basit veri istatistikleri üretme
- Gerçek hayata dönük uygulamalar geliştirme
🧪 6.5 – Liste Üzerinden Toplam, Ortalama vb. İşlemler: Uygulamalı 5 Örnek
📌 Örnek 1: Sayıların Toplamını Hesaplama
🎯 Amaç:
ListBox içindeki tüm sayıları toplayarak sonucu göstermek.
🎨 Form Elemanları:
- lstSayilar, btnToplam, lblToplam
💻 Kod:
private void btnToplam_Click(object sender, EventArgs e)
{
int toplam = 0;
foreach (var item in lstSayilar.Items)
{
if (int.TryParse(item.ToString(), out int sayi))
{
toplam += sayi;
}
}
lblToplam.Text = "Toplam: " + toplam;
}
📝 Açıklama:
Tüm öğeler taranır, geçerli sayılar toplanır ve Label’a yazılır.
📌 Örnek 2: Ortalama Hesaplama
🎯 Amaç:
ListBox içindeki sayıların ortalamasını almak.
🎨 Form Elemanları:
- lstNotlar, btnOrtalama, lblOrtalama
💻 Kod:
private void btnOrtalama_Click(object sender, EventArgs e)
{
int toplam = 0, adet = 0;
foreach (var item in lstNotlar.Items)
{
if (int.TryParse(item.ToString(), out int not))
{
toplam += not;
adet++;
}
}
if (adet > 0)
lblOrtalama.Text = "Ortalama: " + (toplam / (double)adet).ToString("0.00");
else
lblOrtalama.Text = "Geçerli not yok.";
}
📝 Açıklama:
Geçerli sayı sayısı kontrol edilir, hata oluşmaz.
📌 Örnek 3: En Büyük ve En Küçük Sayıyı Bulma
🎯 Amaç:
ListBox içindeki sayılardan en büyük ve en küçüğü tespit etmek.
🎨 Form Elemanları:
- lstDegerler, btnAnaliz, lblEnBuyuk, lblEnKucuk
💻 Kod:
private void btnAnaliz_Click(object sender, EventArgs e)
{
List<int> sayilar = new List<int>();
foreach (var item in lstDegerler.Items)
{
if (int.TryParse(item.ToString(), out int sayi))
sayilar.Add(sayi);
}
if (sayilar.Count > 0)
{
int enBuyuk = sayilar.Max();
int enKucuk = sayilar.Min();
lblEnBuyuk.Text = "En Büyük: " + enBuyuk;
lblEnKucuk.Text = "En Küçük: " + enKucuk;
}
}
📝 Açıklama:
Tüm sayılar listeye alınır, Min() ve Max() ile analiz edilir.
📌 Örnek 4: Pozitif ve Negatif Sayıları Ayırma
🎯 Amaç:
ListBox içindeki sayıları pozitif ve negatif olarak ayırmak.
🎨 Form Elemanları:
- lstTumSayilar, lstPozitif, lstNegatif, btnAyir
💻 Kod:
private void btnAyir_Click(object sender, EventArgs e)
{
lstPozitif.Items.Clear();
lstNegatif.Items.Clear();
foreach (var item in lstTumSayilar.Items)
{
if (int.TryParse(item.ToString(), out int sayi))
{
if (sayi >= 0)
lstPozitif.Items.Add(sayi);
else
lstNegatif.Items.Add(sayi);
}
}
}
📝 Açıklama:
Veriler iki farklı ListBox’a pozitif-negatif olarak ayrılır.
📌 Örnek 5: Seçilen Sayıların Ortalamasını Alma
🎯 Amaç:
Kullanıcının ListBox’tan seçtiği sayıların ortalamasını almak.
🎨 Form Elemanları:
- lstSecimliNotlar (SelectionMode = MultiExtended), btnSeciliOrtalama, lblSeciliOrt
💻 Kod:
private void btnSeciliOrtalama_Click(object sender, EventArgs e)
{
int toplam = 0, adet = 0;
foreach (var item in lstSecimliNotlar.SelectedItems)
{
if (int.TryParse(item.ToString(), out int sayi))
{
toplam += sayi;
adet++;
}
}
if (adet > 0)
lblSeciliOrt.Text = "Seçilen Ortalama: " + (toplam / (double)adet).ToString("0.00");
else
lblSeciliOrt.Text = "Seçim yapılmadı.";
}
📝 Açıklama:
Yalnızca seçilen öğeler üzerinden işlem yapılır.
✅ Özet:
Bu bölümle birlikte öğrenciler artık:
- Veriyi analiz etmeyi
- Matematiksel işlemler uygulamayı
- Arayüzle veri arasında köprü kurmayı
- ListBox kontrollerini istatistiksel araç olarak kullanmayı öğrenmiş oldu.






