Take — Klauzula (Visual Basic)
Zwraca określoną liczbę ciągłych elementów od początku kolekcji.
Składnia
Take count
generatora
count
Wymagany. Wartość lub wyrażenie, które oblicza liczbę elementów sekwencji do zwrócenia.
Uwagi
Klauzula Take
powoduje, że zapytanie zawiera określoną liczbę ciągłych elementów na początku listy wyników. Liczba elementów do uwzględnienia jest określana przez count
parametr .
Możesz użyć klauzuli Take
z klauzulą , Skip
aby zwrócić zakres danych z dowolnego segmentu zapytania. W tym celu przekaż indeks pierwszego elementu zakresu do Skip
klauzuli i rozmiar zakresu do klauzuli Take
. W takim przypadku klauzula Take
musi zostać określona po klauzuli Skip
.
W przypadku używania klauzuli Take
w zapytaniu może być również konieczne upewnienie się, że wyniki zostaną zwrócone w kolejności, która umożliwi klauzulę Take
dołączania zamierzonych wyników. Aby uzyskać więcej informacji na temat porządkowania wyników zapytania, zobacz Klauzula Order By.
Możesz użyć klauzuli TakeWhile
, aby określić, że zwracane są tylko niektóre elementy, w zależności od podanego warunku.
Przykład
Poniższy przykład kodu używa klauzuli Take
wraz z Skip
klauzulą , aby zwracać dane z zapytania na stronach. Funkcja GetCustomers używa Skip
klauzuli , aby pominąć klientów na liście do momentu podanej wartości indeksu początkowego i używa Take
klauzuli , aby zwrócić stronę klientów rozpoczynających się od tej wartości indeksu.
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