Freigeben über


Take-Klausel (Visual Basic)

Aktualisiert: November 2007

Gibt eine angegebene Anzahl von zusammenhängenden Elementen vom Anfang einer Auflistung zurück.

Take count

Bestandteile

  • count
    Erforderlich. Ein Wert oder ein Ausdruck, dessen Auswertung die Anzahl von Elementen der Sequenz ergibt, die zurückgegeben werden soll.

Hinweise

Durch Angabe der Take-Klausel umfasst eine Abfrage eine angegebene Anzahl zusammenhängender Elemente vom Anfang einer Ergebnisliste. Die Anzahl der einzuschließenden Elemente wird durch den count-Parameter festgelegt.

Die Take-Klausel kann zusammen mit der Skip-Klausel verwendet werden, um einen Datenbereich aus einem beliebigen Abschnitt einer Abfrage zurückzugeben. Hierfür wird der Skip-Klausel der Index des ersten Elements des Bereichs und der Take-Klausel die Größe des Bereichs übergeben. In diesem Fall muss die Take-Klausel nach der Skip-Klausel angegeben werden.

Bei der Verwendung der Take-Klausel in einer Abfrage sollte sichergestellt werden, dass die Ergebnisse in einer Reihenfolge zurückgegeben werden, in der die vorgesehenen Ergebnisse von der Take-Klausel eingeschlossen werden können. Weitere Informationen zum Sortieren von Abfrageergebnissen finden Sie unter ORDER BY-Klausel (Visual Basic).

Mit der TakeWhile-Klausel kann anhand einer angegebenen Bedingung festgelegt werden, dass nur bestimmte Elemente zurückgegeben werden.

Beispiel

Im folgenden Codebeispiel wird die Take-Klausel zusammen mit der Skip-Klausel verwendet, um die Ergebnisse einer Abfrage seitenweise zurückzugeben. Die Skip-Klausel wird von der GetCustomers-Funktion verwendet, um die Kunden in der Liste bis zum angegebenen Indexstartwert zu übergehen. Die Take-Klausel wird verwendet, um eine Seite mit Kunden ab diesem Indexwert zurückzugeben.

Public Sub PagingSample()
  Dim pageNumber As Integer = 0
  Dim pageSize As Integer = 10

  Dim customersPage = GetCustomers(pageNumber * pageSize, pageSize)

  Do While customersPage IsNot Nothing
    Console.WriteLine(vbCrLf & "Page: " & pageNumber + 1 & vbCrLf)

    For Each cust In customersPage
      Console.WriteLine(cust.CustomerID & ", " & cust.CompanyName)
    Next

    Console.WriteLine(vbCrLf)

    pageNumber += 1
    customersPage = GetCustomers(pageNumber * pageSize, pageSize)
  Loop
End Sub

Public Function GetCustomers(ByVal startIndex As Integer, _
                             ByVal pageSize As Integer) As List(Of Customer)

  Dim customers = GetCustomerList()

  Dim returnCustomers = From cust In customers _
                        Skip startIndex Take pageSize

  If returnCustomers.Count = 0 Then Return Nothing

  Return returnCustomers
End Function

Siehe auch

Konzepte

Einführung in LINQ in Visual Basic

Referenz

Select-Klausel (Visual Basic)

From-Klausel (Visual Basic)

ORDER BY-Klausel (Visual Basic)

Take While-Klausel (Visual Basic)

Skip-Klausel (Visual Basic)

Weitere Ressourcen

Abfragen (Visual Basic)