OrderBy
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
-
İkincil sıralama hangisi?
- OrderBy
- OrderByDescending
- ThenBy
- Where
Cevabı göster
Where — Doğru. ThenBy, OrderBy sonrasına ikincil sıralama ekler.
-
Sıralama çağrısını tamamla
var sorted = numbers.____(n => n);Cevabı göster
var sorted = numbers.OrderBy(n => n); -
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