Bu makalede, C# Windows Forms uygulaması kullanarak, kullanıcıdan alınan sayılar arasından belirli bir koşulu sağlayan sayıların ortalamasını hesaplayan bir uygulama yapacağız. Bu örnekte, LINQ (Language Integrated Query) kullanarak verileri filtreleyecek ve ortalama hesaplama işlemi gerçekleştireceğiz.
Projenin Amacı
- Kullanıcı, virgülle ayrılmış tamsayıları bir metin kutusuna girer.
- Program, LINQ kullanarak belirli bir koşula uyan sayıları filtreler (örneğin, 10’dan büyük olan sayılar).
- Bu sayıların ortalamasını hesaplar.
- Sonuç, ekranda görüntülenir. Eğer koşula uyan sayı yoksa kullanıcıya bir uyarı mesajı gösterilir.
Gerekli Araçlar
- Visual Studio (2022 veya daha yeni bir sürüm önerilir)
- .NET Framework ile Windows Forms App (C#)
Uygulamanın Adımları
1. Windows Forms Projesi Oluşturma
- Visual Studio’yu açın ve yeni bir Windows Forms App (.NET Framework) projesi oluşturun.
- Projenize bir isim verin (örneğin:
OrtalamaHesaplama).
2. Form Tasarımı

Form tasarımında aşağıdaki bileşenlere ihtiyacımız olacak:
- Label: Kullanıcıya bilgi vermek için (
"Virgülle ayrılmış sayıları girin:"yazabilir). - TextBox (
txtSayilar): Kullanıcıdan tamsayı dizisini almak için. - Button (
btnHesapla): Ortalama hesaplama işlemini başlatmak için. - Label (
lblOrtalama): Hesaplanan ortalamayı göstermek için.
Form Görünümü:
3. Kod Ekleme
Form tasarımından sonra, aşağıdaki kodu Form1.cs dosyasına ekleyin. Bu kod, verilen sayılardan 10’dan büyük olanların ortalamasını hesaplar.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | private void btnHesapla_Click(object sender, EventArgs e) { try { // Kullanıcıdan alınan metni parçala string giris = txtSayilar.Text; int[] sayilar = giris .Split(',') // Virgül ile ayır .Select(x => int.Parse(x.Trim())) // Her birini tamsayıya dönüştür .ToArray(); // LINQ ile 10'dan büyük sayıları filtrele var buyukSayilar = sayilar.Where(num => num > 10); // Filtrelenmiş sayılardan ortalamayı hesapla if (buyukSayilar.Any()) { double ortalama = buyukSayilar.Average(); lblOrtalama.Text = $"Ortalama: {ortalama:F2}"; // Ortalamayı 2 ondalıklı göster } else { MessageBox.Show("10'dan büyük sayı bulunamadı.", "Bilgi", MessageBoxButtons.OK, MessageBoxIcon.Information); } } catch (Exception ex) { MessageBox.Show($"Bir hata oluştu: {ex.Message}", "Hata", MessageBoxButtons.OK, MessageBoxIcon.Error); } } |
Kodun Açıklaması
1. Kullanıcıdan Girdi Alma
1 2 3 | string giris = txtSayilar.Text; |
- Kullanıcı tarafından girilen virgüllerle ayrılmış sayıları alıyoruz.
2. Metni Tamsayı Dizisine Dönüştürme
1 2 3 4 5 6 | int[] sayilar = giris .Split(',') // Virgül ile ayır .Select(x => int.Parse(x.Trim())) // Her birini tamsayıya dönüştür .ToArray(); |
- Girilen metni virgüllerle ayırıp, her bir değeri tamsayıya dönüştürüyoruz ve bir diziye çeviriyoruz.
3. Sayıları Filtreleme
1 2 3 | var buyukSayilar = sayilar.Where(num => num > 10); |
Wheremetodu ile, 10’dan büyük sayıları filtreliyoruz.
4. Ortalama Hesaplama
1 2 3 4 5 6 7 | if (buyukSayilar.Any()) { double ortalama = buyukSayilar.Average(); lblOrtalama.Text = $"Ortalama: {ortalama:F2}"; } |
Averagemetodu ile filtrelenmiş sayıların ortalamasını hesaplıyoruz. Eğer filtrelenmiş sayı varsa, sonucu 2 ondalıklı olarakLabelüzerinde gösteriyoruz.
5. Koşula Uyan Sayı Yoksa Bilgilendirme
1 2 3 4 5 6 | else { MessageBox.Show("10'dan büyük sayı bulunamadı.", "Bilgi", MessageBoxButtons.OK, MessageBoxIcon.Information); } |
- Eğer 10’dan büyük sayı bulunamazsa, kullanıcıya bilgi mesajı gösteriyoruz.
6. Hata Kontrolü
1 2 3 4 5 6 | catch (Exception ex) { MessageBox.Show($"Bir hata oluştu: {ex.Message}", "Hata", MessageBoxButtons.OK, MessageBoxIcon.Error); } |
Uygulama çalışırken herhangi bir hata olursa, hata mesajı gösteriyoruz.
Örnek Çalışma

Sonuç
Bu uygulama, LINQ kullanarak belirli bir koşulu sağlayan sayılar üzerinde işlem yapmanın temel bir örneğidir. Kullanıcıdan alınan sayılar arasından koşula uyan sayıları filtreleyip, bu sayıların ortalamasını hesaplamak oldukça kolaydır.
