Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I följande exempel visas hur du sorterar rader med strukturerad text, till exempel kommaavgränsade värden, efter valfritt fält på raden. Fältet kan anges dynamiskt under exekveringstid. Anta att fälten i scores.csv representerar en elevs ID-nummer följt av en serie med fyra testresultat.
Skapa en fil som innehåller data
Kopiera scores.csv data från ämnet Så här: Anslut innehåll från olika filer (LINQ) (Visual Basic) och spara dem i din lösningsmapp.
Exempel
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
Det här exemplet visar också hur du returnerar en frågevariabel från en funktion.
Kompilera koden
Skapa ett Visual Basic-konsolprogramprojekt med en Imports
instruktion för System.Linq-namnområdet.