Dělení dat (Visual Basic)
Dělení v LINQ odkazuje na operaci rozdělení vstupní sekvence do dvou oddílů, aniž by se přeuspořádaly prvky a pak vrátily jeden z oddílů.
Následující obrázek znázorňuje výsledky tří různých operací dělení na posloupnost znaků. První operace vrátí první tři prvky v sekvenci. Druhá operace přeskočí první tři prvky a vrátí zbývající prvky. Třetí operace přeskočí první dva prvky v sekvenci a vrátí další tři prvky.
Standardní metody operátoru dotazu, které sekvence oddílů jsou uvedeny v následující části.
Operátory
Název operátoru | Popis | Syntaxe výrazů dotazu jazyka Visual Basic | Další informace |
---|---|---|---|
Přeskočit | Přeskočí prvky až na zadanou pozici v sekvenci. | Skip |
Enumerable.Skip Queryable.Skip |
Skipwhile | Přeskočí prvky založené na predikátové funkci, dokud prvek nesplňuje podmínku. | Skip While |
Enumerable.SkipWhile Queryable.SkipWhile |
Take | Přebírá prvky až do zadané pozice v sekvenci. | Take |
Enumerable.Take Queryable.Take |
Takewhile | Přebírá prvky založené na predikát funkce, dokud prvek nesplňuje podmínku. | Take While |
Enumerable.TakeWhile Queryable.TakeWhile |
Blok dat | Rozdělí prvky sekvence na bloky zadané maximální velikosti. | Enumerable.Chunk Queryable.Chunk |
Příklady syntaxe výrazů dotazů
Přeskočit
Následující příklad kódu používá klauzuli Skip
v jazyce Visual Basic k přeskočení prvních čtyř řetězců v poli řetězců před vrácením zbývajících řetězců v poli.
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
Skipwhile
Následující příklad kódu používá klauzuli Skip While
v jazyce Visual Basic k přeskočení řetězců v poli, zatímco první písmeno řetězce je "a". Vrátí se zbývající řetězce v poli.
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
Take
Následující příklad kódu používá klauzuli Take
v jazyce Visual Basic k vrácení prvních dvou řetězců v poli řetězců.
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
Následující příklad kódu používá klauzuli Take While
v jazyce Visual Basic k vrácení řetězců z pole, zatímco délka řetězce je pět nebo méně.
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