Cara: Mengurutkan atau Memfilter Data Teks berdasarkan Kata atau Bidang Apa Pun (LINQ) (Visual Basic)

Contoh berikut menunjukkan cara mengurutkan baris teks terstruktur, seperti nilai yang dipisahkan koma, berdasarkan bidang apa pun dalam baris. Bidang mungkin ditentukan secara dinamis pada run-time. Anggap saja bidang dalam scores.csv mewakili nomor ID siswa, diikuti dengan serangkaian empat skor pengujian.

Untuk membuat file yang berisi data

Salin data scores.csv dari topik Cara: Menggabungkan Konten dari File yang Berbeda (LINQ) (Visual Basic) dan simpan ke folder solusi Anda.

Contoh

Class SortLines

    Shared Sub Main()
        Dim scores As String() = System.IO.File.ReadAllLines("../../../scores.csv")

        ' Change this to any value from 0 to 4
        Dim sortField As Integer = 1

        Console.WriteLine("Sorted highest to lowest by field " & sortField)

        ' Demonstrates how to return query from a method.
        ' The query is executed here.
        For Each str As String In SortQuery(scores, sortField)
            Console.WriteLine(str)
        Next

        ' Keep console window open in debug mode.
        Console.WriteLine("Press any key to exit.")
        Console.ReadKey()

    End Sub

    Shared Function SortQuery(
        ByVal source As IEnumerable(Of String),
        ByVal num As Integer) As IEnumerable(Of String)

        Dim scoreQuery = From line In source
                         Let fields = line.Split(New Char() {","})
                         Order By fields(num) Descending
                         Select line

        Return scoreQuery
    End Function
End Class
' Output:
' Sorted highest to lowest by field 1
' 116, 99, 86, 90, 94
' 120, 99, 82, 81, 79
' 111, 97, 92, 81, 60
' 114, 97, 89, 85, 82
' 121, 96, 85, 91, 60
' 122, 94, 92, 91, 91
' 117, 93, 92, 80, 87
' 118, 92, 90, 83, 78
' 113, 88, 94, 65, 91
' 112, 75, 84, 91, 39
' 119, 68, 79, 88, 92
' 115, 35, 72, 91, 70

Contoh ini juga menunjukkan cara menampilkan variabel kueri dari metode.

Mengkompilasi kode

Buat proyek aplikasi konsol Visual Basic, dengan Imports pernyataan untuk namespace Layanan System.Linq.

Lihat juga