Sdílet prostřednictvím


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.

Illustration that shows three LINQ partitioning operations.

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

Viz také