Sdílet prostřednictvím


Dělení dat (Visual Basic)

Rozdělení na části v LINQ odkazuje na operaci rozdělení vstupní posloupnosti do dvou částí, aniž by se přeuspořádaly prvky, a následné vrácení jedné části.

Následující obrázek ukazuje výsledky tří různých operací částění na sekvenci 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.

Obrázek znázorňující tři operace dělení LINQ

Metody operátorů standardního dotazu, které rozdělují sekvence, jsou uvedeny v následující části.

Operátoři

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
Přeskočit dokud Přeskočí prvky založené na predikátové funkci, dokud prvek nesplňuje podmínku. Skip While Enumerable.SkipWhile

Queryable.SkipWhile
Vezměte Přebírá prvky až do zadané pozice v sekvenci. Take Enumerable.Take

Queryable.Take
Chvíli trvat 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

Přeskočit dokud

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". Zbývající řetězce v poli jsou vráceny.


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

Vezměte

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

Chvíli trvat

Následující příklad kódu používá klauzuli Take While v jazyce Visual Basic a vrací řetězce z pole, pokud délka řetězce je nejvýše pět.


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é