C# Linq OrderBy Kullanımı

C# programlama dilinde, Linq bileşeni içindeki OrderBy() metodu , belirli bir koleksiyondaki öğeleri belirli bir koşula göre artan şekilde sıralamak için kullanılır. Birden fazla özelliğe göre sıralamak için ThenBy () metodunu OrderBy () 'a bağlayarak yaparız.

Örnek kodu incelemek için ilk önce koleksiyonumuzun (collection) oluşturulduğu Ogrenci ve Sinif class larımızı hazırlayalım.

class Ogrenci 
{
        public int Id { get; set; }
        public string Ad { get; set; }
}

class Sinif 
{
       public readonly List ogrenciler;

       public Sinif() 
       {
            this.ogrenciler = OgrenciYarat().ToList();
       }

       private IEnumerable OgrenciYarat()
       {
            yield return new Ogrenci { Id = 1, Ad = "Ali" };
            yield return new Ogrenci { Id = 2, Ad = "Erdem" };
            yield return new Ogrenci { Id = 3, Ad = "Ayşe" };
            yield return new Ogrenci { Id = 4, Ad = "Lale" };
            yield return new Ogrenci { Id = 5, Ad = "Gül" };
            yield return new Ogrenci { Id = 6, Ad = "Osman" };
            yield return new Ogrenci { Id = 7, Ad = "Irmak" };
            yield return new Ogrenci { Id = 8, Ad = "Tarık" };
            yield return new Ogrenci { Id = 9, Ad = "Osman" };
        }
} 

Oluşturulan sınıflarımızla birlikte OrderBy() 'ı hem yöntem hem de sorgu türündeki örneklerde kullanalım.

Sinif sinif = new Sinif();
var sirala = sinif.ogrenciler.OrderBy(x => x.Ad).ThenBy(x=>x.Id);
var siralaSorgu = from s in sinif.ogrenciler orderby s.Ad, s.Id select s;

foreach (var eleman in sirala) 
{
   Console.WriteLine(eleman.Ad + " " + eleman.Id);
}

Console.WriteLine();

foreach (var eleman in siralaSorgu) 
{
   Console.WriteLine(eleman.Ad + " " + eleman.Id);
}

Console.ReadLine();  

Örneklerimizde koleksiyonumuzu ilk önce "Ad" alanına göre, aynı Ad değerine sahip olanları da kendi içinde "Id" alanına göre sıraladık.

Yöntem türü için "sirala" , sorgu türü için ise "siralaSorgu" değişkenini kullandık. Her 2 tür de bize aynı sonucu verecektir.

Tüm koda aşağıdan ulaşabilirsiniz..

using System;
using System.Collections.Generic;
using System.Linq;
namespace ConsoleApplicationTest
{
    class Program {

        static void Main(string[] args) {
            
            Sinif sinif = new Sinif();
            var sirala = sinif.ogrenciler.OrderBy(x => x.Ad).ThenBy(x=>x.Id);
            var siralaSorgu = from s in sinif.ogrenciler orderby s.Ad, s.Id select s;

            foreach (var eleman in sirala) 
            {
                Console.WriteLine(eleman.Ad + " " + eleman.Id);
            }

            Console.WriteLine();

            foreach (var eleman in siralaSorgu) 
            {
                Console.WriteLine(eleman.Ad + " " + eleman.Id);
            }

            Console.ReadLine();
        }
}


class Ogrenci 
{
        public int Id { get; set; }
        public string Ad { get; set; }
}

class Sinif 
{
        public readonly List ogrenciler;

        public Sinif() 
        {
            this.ogrenciler = OgrenciYarat().ToList();
        }

        private IEnumerable OgrenciYarat()
        {
            yield return new Ogrenci { Id = 1, Ad = "Ali" };
            yield return new Ogrenci { Id = 2, Ad = "Erdem" };
            yield return new Ogrenci { Id = 3, Ad = "Ayşe" };
            yield return new Ogrenci { Id = 4, Ad = "Lale" };
            yield return new Ogrenci { Id = 5, Ad = "Gül" };
            yield return new Ogrenci { Id = 6, Ad = "Osman" };
            yield return new Ogrenci { Id = 7, Ad = "Irmak" };
            yield return new Ogrenci { Id = 8, Ad = "Tarık" };
            yield return new Ogrenci { Id = 9, Ad = "Osman" };
        }
    }
}


C#

İlginizi Çekebilir

C# Fibonacci Serisinde N'inci Terimi Bulma Örneği

C# Rastgele Float Yaratmak

C#'da Stringin Karakter Sayısını Bulmak

C# Dosyanın Oluşturma Tarihini Değiştirme

C# 1'den 100'e Kadar Sayı Toplam Örneği