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 Bir Sayının Asal Sayı Olup Olmadığını Bulma Örneği

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

Visual Basic Bir Stringde Tam Sayılar Dışındaki Karakterleri Kald ...

Visual Basic Dosya Kopyalama

Visual Basic Bir Dizi Tam Sayının Ortalamasını Bulma