Visual Basic Linq OrderBy Kullanımı

Visual Basic 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 Property Id As Integer
    Public Property Ad As String
End Class

Class Sinif
    Public ReadOnly ogrenciler As List(Of Ogrenci)
    Public Sub New()
        Me.ogrenciler = OgrenciYarat().ToList()
    End Sub

    Private Iterator Function OgrenciYarat() As IEnumerable(Of Ogrenci)
        Yield New Ogrenci With { .Id = 1, .Ad = "Ali" }
        Yield New Ogrenci With { .Id = 2, .Ad = "Erdem" }
        Yield New Ogrenci With { .Id = 3, .Ad = "Ayşe" }
        Yield New Ogrenci With { .Id = 4, .Ad = "Lale" }
        Yield New Ogrenci With { .Id = 5, .Ad = "Gül" }
        Yield New Ogrenci With { .Id = 6, .Ad = "Osman" }
        Yield New Ogrenci With { .Id = 7, .Ad = "Irmak" }
        Yield New Ogrenci With { .Id = 8, .Ad = "Tarık" }
        Yield New Ogrenci With { .Id = 9, .Ad = "Osman" }
    End Function
End Class

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

Dim sinif As Sinif = New Sinif()
Dim sirala = sinif.ogrenciler.OrderBy(Function(x) x.Ad).ThenBy(Function(x) x.Id)
Dim siralaSorgu = From s In sinif.ogrenciler Order By s.Ad, s.Id Select s

For Each eleman In sirala
     Console.WriteLine(eleman.Ad & " " & eleman.Id)
Next

Console.WriteLine()

For Each eleman In siralaSorgu
      Console.WriteLine(eleman.Ad & " " & eleman.Id)
Next

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..

Imports System
Imports System.Collections.Generic
Imports System.Linq

Module ModuleTest

    Sub Main()

        Dim sinif As Sinif = New Sinif()
        Dim sirala = sinif.ogrenciler.OrderBy(Function(x) x.Ad).ThenBy(Function(x) x.Id)
        Dim siralaSorgu = From s In sinif.ogrenciler Order By s.Ad, s.Id Select s

        For Each eleman In sirala
            Console.WriteLine(eleman.Ad & " " & eleman.Id)
        Next

        Console.WriteLine()

        For Each eleman In siralaSorgu
            Console.WriteLine(eleman.Ad & " " & eleman.Id)
        Next

        Console.ReadLine()

    End Sub

End Module


Class Ogrenci
    Public Property Id As Integer
    Public Property Ad As String
End Class

Class Sinif
    Public ReadOnly ogrenciler As List(Of Ogrenci)
    Public Sub New()
        Me.ogrenciler = OgrenciYarat().ToList()
    End Sub

    Private Iterator Function OgrenciYarat() As IEnumerable(Of Ogrenci)
        Yield New Ogrenci With { .Id = 1, .Ad = "Ali" }
        Yield New Ogrenci With { .Id = 2, .Ad = "Erdem" }
        Yield New Ogrenci With { .Id = 3, .Ad = "Ayşe" }
        Yield New Ogrenci With { .Id = 4, .Ad = "Lale" }
        Yield New Ogrenci With { .Id = 5, .Ad = "Gül" }
        Yield New Ogrenci With { .Id = 6, .Ad = "Osman" }
        Yield New Ogrenci With { .Id = 7, .Ad = "Irmak" }
        Yield New Ogrenci With { .Id = 8, .Ad = "Tarık" }
        Yield New Ogrenci With { .Id = 9, .Ad = "Osman" }
    End Function
End Class



İlginizi Çekebilir

Visual Basic Stringi İstenilen Karaktere Göre Parçalara Ayırma

Visual Basic String Insert Kullanımı

Visual Basic Bir Stringteki Küçük Harfleri Öne Alma Örneği

Visual Basic 1'den N'e Kadar Olan Çift Sayıların Toplamını Bulma ...

Visual Basic İkinci Dereceden Bir Denklemin Köklerini Bulma Örneğ ...