Partitioneringsdata (Visual Basic)
Partitionering i LINQ syftar på att dela upp en indatasekvens i två avsnitt, utan att ändra ordning på elementen och sedan returnera ett av avsnitten.
Följande bild visar resultatet av tre olika partitioneringsåtgärder på en sekvens med tecken. Den första åtgärden returnerar de tre första elementen i sekvensen. Den andra åtgärden hoppar över de tre första elementen och returnerar de återstående elementen. Den tredje åtgärden hoppar över de två första elementen i sekvensen och returnerar de följande tre elementen.
Standardmetoderna för frågeoperatorer som partitionssekvenser visas i följande avsnitt.
Operatorer
Operatornamn | beskrivning | Syntax för Visual Basic-frågeuttryck | Mer information |
---|---|---|---|
Hoppa över | Hoppar över element upp till en angiven position i en sekvens. | Skip |
Enumerable.Skip Queryable.Skip |
Hoppa över | Hoppar över element baserat på en predikatfunktion tills ett element inte uppfyller villkoret. | Skip While |
Enumerable.SkipWhile Queryable.SkipWhile |
Ta | Tar element upp till en angiven position i en sekvens. | Take |
Enumerable.Take Queryable.Take |
TakeWhile | Tar element baserat på en predikatfunktion tills ett element inte uppfyller villkoret. | Take While |
Enumerable.TakeWhile Queryable.TakeWhile |
Segment | Delar upp elementen i en sekvens i segment med en angiven maximal storlek. | Enumerable.Chunk Queryable.Chunk |
Exempel på frågeuttryckssyntax
Hoppa över
I följande kodexempel används Skip
-satsen i Visual Basic för att hoppa över de första fyra strängarna i en matris med strängar innan de återstående strängarna i matrisen returneras.
Dim words = {"an", "apple", "a", "day", "keeps", "the", "doctor", "away"}
Dim query = From word In words
Skip 4
Dim sb As New System.Text.StringBuilder()
For Each str As String In query
sb.AppendLine(str)
Next
' Display the results.
MsgBox(sb.ToString())
' This code produces the following output:
' keeps
' the
' doctor
' away
Hoppa över
I följande kodexempel används Skip While
-satsen i Visual Basic för att hoppa över strängarna i en matris medan den första bokstaven i strängen är "a". Återstående strängar i matrisen returneras.
Dim words = {"an", "apple", "a", "day", "keeps", "the", "doctor", "away"}
Dim query = From word In words
Skip While word.Substring(0, 1) = "a"
Dim sb As New System.Text.StringBuilder()
For Each str As String In query
sb.AppendLine(str)
Next
' Display the results.
MsgBox(sb.ToString())
' This code produces the following output:
' day
' keeps
' the
' doctor
' away
Ta
I följande kodexempel används Take
-satsen i Visual Basic för att returnera de två första strängarna i en strängmatris.
Dim words = {"an", "apple", "a", "day", "keeps", "the", "doctor", "away"}
Dim query = From word In words
Take 2
Dim sb As New System.Text.StringBuilder()
For Each str As String In query
sb.AppendLine(str)
Next
' Display the results.
MsgBox(sb.ToString())
' This code produces the following output:
' an
' apple
TakeWhile
I följande kodexempel används Take While
-satsen i Visual Basic för att returnera strängar från en matris medan längden på strängen är fem eller mindre.
Dim words = {"an", "apple", "a", "day", "keeps", "the", "doctor", "away"}
Dim query = From word In words
Take While word.Length < 6
Dim sb As New System.Text.StringBuilder()
For Each str As String In query
sb.AppendLine(str)
Next
' Display the results.
MsgBox(sb.ToString())
' This code produces the following output:
' an
' apple
' a
' day
' keeps
' the