CodeBlanks Logo Icon CodeBlanks

Özet - LINQ sorgu söz dizimi

C# kursu · İleri seviye · Ders 36/83

from, where, select ve group by'ı birleştirerek bir çalışan raporu yazarsın.

Özet - LINQ sorgu söz dizimi

Bu grupta from, where, select, orderby ve group by ... into yan tümcelerini öğrendin. Bir sorgu from ile başlar, select veya group ile biter; arada süzme, sıralama ve dönüştürme yapılır.

Şimdi bunları birleştirerek bir çalışan raporu üreteceksin: önce yüksek maaşlıları where ile süzeceksin, sonra bölüm ve maaşa göre orderby ile sıralayıp özelleştirilmiş bir çıktı üreteceksin.

Uygulama Yüksek maaşlı çalışanları süz

Aşağıdaki employees listesinde from e in employees where e.Salary >= 5500 select e ile maaşı 5500 ve üzeri olanları süz. Sonucu foreach ile gez ve Console.WriteLine(e.Name) ile isimlerini yazdır.

Örnek çözümü göster
var wellPaid = from e in employees where e.Salary >= 5500 select e; ile sorguyu yaz. Sonra foreach (var e in wellPaid) { Console.WriteLine(e.Name); } ile yazdır.
Örnek çözüm:
using System;
using System.Collections.Generic;
using System.Linq;

class Employee
{
    public string Name { get; set; }
    public string Department { get; set; }
    public decimal Salary { get; set; }
}

class Program
{
    static void Main()
    {
        var employees = new List<Employee>
        {
            new Employee { Name = "Ayşe", Department = "Satış", Salary = 5000 },
            new Employee { Name = "Mehmet", Department = "IT", Salary = 7000 },
            new Employee { Name = "Zeynep", Department = "Satış", Salary = 5500 },
            new Employee { Name = "Alex", Department = "IT", Salary = 6500 }
        };
        var wellPaid = from e in employees
                      where e.Salary >= 5500
                      select e;
        foreach (var e in wellPaid)
        {
            Console.WriteLine(e.Name);
        }
    }
}

Uygulama Çalışan raporunu sırala ve yazdır

Yüksek maaşlı çalışanları orderby e.Department, e.Salary descending ile bölüme göre artan, maaşa göre azalan sırala. foreach ile gez ve her çalışan için Console.WriteLine($"{e.Department} - {e.Name}: {e.Salary}") yazdır.

Örnek çözümü göster
{e.Salary}"); } ile yazdır.
Örnek çözüm:
using System;
using System.Collections.Generic;
using System.Linq;

class Employee
{
    public string Name { get; set; }
    public string Department { get; set; }
    public decimal Salary { get; set; }
}

class Program
{
    static void Main()
    {
        var employees = new List<Employee>
        {
            new Employee { Name = "Ayşe", Department = "Satış", Salary = 5000 },
            new Employee { Name = "Mehmet", Department = "IT", Salary = 7000 },
            new Employee { Name = "Zeynep", Department = "Satış", Salary = 5500 },
            new Employee { Name = "Alex", Department = "IT", Salary = 6500 }
        };
        var report = from e in employees
                     where e.Salary >= 5500
                     orderby e.Department, e.Salary descending
                     select e;
        foreach (var e in report)
        {
            Console.WriteLine($"{e.Department} - {e.Name}: {e.Salary}");
        }
    }
}

Kendini test et

  1. Bir sorguda sıralama hangi yan tümceyle yapılır?

    • from
    • orderby
    • select
    • into
    Cevabı göster

    orderby — Doğru. orderby ile sıralama yapılır.

  2. Yan tümceyi konumuna eşle

    from
    Başlangıç
    where
    Süzme
    orderby
    Sıralama
    select
    Sonuç

İleri seviye bölümündeki tüm dersler