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
ORDER BY-Klausel (Visual Basic)
Take While-Klausel (Visual Basic)