CodeBlanks Logo Icon CodeBlanks

OrderBy

C# kursu · Orta seviye · Ders 91/116

OrderBy ile sıralamayı ve ThenBy ile ikincil sıralamayı öğrenirsin.

OrderBy ile sıralama

OrderBy metodu, koleksiyonu artan sıraya göre düzenler. Bir lambda alır; bu lambda her eleman için sıralama anahtarını üretir. students.OrderBy(s => s.Age) yaşa göre artan sıralama yapar.

Azalan sıralama için OrderByDescending kullanılır. OrderBy kararlı bir sıralamadır: eşit anahtarlı elemanların özgün sırası korunur. Sonuç bir IOrderedEnumerable<T>'dir; bu türe ThenBy uygulanabilir.

ThenBy ile ikincil sıralama

ThenBy, bir OrderBy sonrasına ikincil bir sıralama anahtarı ekler. Öğrencileri önce sınıfa, sonra ada göre sıralamak için: students.OrderBy(s => s.Grade).ThenBy(s => s.Name).

İkincil anahtar yalnızca birincil anahtar eşit olduğunda devreye girer. ThenByDescending ile azalan ikincil sıralama da yapılır. Yeni bir OrderBy çağrısı önceki sıralamayı sıfırlar; bu yüzden çok anahtarlı sıralamada ThenBy kullanılır.

Uygulama Sayıları artan sırala

numbers dizisini OrderBy ile artan sırala ve foreach ile her birini yazdır.

Örnek çözümü göster
numbers.OrderBy(n => n) ile sırala, foreach ile gez, Console.WriteLine(n) ile yazdır.
Örnek çözüm:
using System;
using System.Linq;

class Program
{
    static void Main()
    {
        int[] numbers = { 7, 2, 9, 4 };
        foreach (var n in numbers.OrderBy(n => n))
        {
            Console.WriteLine(n);
        }
    }
}

Kendini test et

  1. İkincil sıralama hangisi?

    • OrderBy
    • OrderByDescending
    • ThenBy
    • Where
    Cevabı göster

    Where — Doğru. ThenBy, OrderBy sonrasına ikincil sıralama ekler.

  2. Sıralama çağrısını tamamla

    var sorted = numbers.____(n => n);
    Cevabı göster
    var sorted = numbers.OrderBy(n => n);
  3. Metodu çıktısına eşle

    OrderBy(n => n)
    1, 2, 3
    OrderByDescending(n => n)
    3, 2, 1
    ThenBy(s => s.Name)
    İkincil ada göre
    OrderBy(s => s.Age)
    Birincil yaşa göre

Orta seviye bölümündeki tüm dersler