Take-Klausel (Visual Basic)
Gibt eine angegebene Anzahl von zusammenhängenden Elementen vom Anfang einer Auflistung zurück.
Syntax
Take count
Bestandteile
count
Erforderlich. Ein Wert oder ein Ausdruck, der die Anzahl der zurückzugebenden Elemente der Sequenz auswertet.
Bemerkungen
Die Take
-Klausel bewirkt, dass eine Abfrage eine bestimmte Anzahl zusammenhängender Elemente vom Anfang einer Ergebnisliste enthält. Die Anzahl der einzuschließenden Elemente wird durch den count
-Parameter angegeben.
Sie können die Take
-Klausel mit der Skip
-Klausel verwenden, um einen Datenbereich aus einem beliebigen Segment einer Abfrage zurückzugeben. Übergeben Sie hierzu den Index des ersten Elements des Bereichs an die Skip
-Klausel und die Größe des Bereichs an die Take
-Klausel. In diesem Fall muss die Take
-Klausel nach der Skip
-Klausel angegeben werden.
Wenn Sie die Take
-Klausel in einer Abfrage verwenden, müssen Sie möglicherweise auch sicherstellen, dass die Ergebnisse in einer Reihenfolge zurückgegeben werden, in der die Take
-Klausel die vorgesehenen Ergebnisse enthalten kann. Weitere Informationen zum Sortieren von Abfrageergebnissen finden Sie unter Order By-Klausel.
Mit der TakeWhile
-Klausel können Sie angeben, dass je nach bereitgestellter Bedingung nur bestimmte Elemente zurückgegeben werden.
Beispiel
Im folgenden Codebeispiel wird die Take
-Klausel zusammen mit der Skip
-Klausel verwendet, um Daten aus einer Abfrage in Seiten zurückzugeben. Die GetCustomers-Funktion verwendet die Skip
-Klausel, um die Kunden in der Liste bis zum angegebenen Anfangsindexwert zu umgehen, und verwendet die Take
-Klausel, um eine Seite von Kunden zurückzugeben, die mit diesem Indexwert beginnen.
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