Klausul Take (Visual Basic)
Mengembalikan jumlah elemen berdekatan yang ditentukan dari awal koleksi.
Sintaks
Take count
Generator
count
Harus diisi. Nilai atau ekspresi yang mengevaluasi jumlah elemen urutan yang akan dikembalikan.
Keterangan
Klausul Take
ini menyebabkan kueri menyertakan sejumlah elemen yang berdekatan dari awal daftar hasil. Jumlah elemen yang akan disertakan ditentukan oleh parameter count
.
Anda bisa menggunakan klausul Take
dengan klausul Skip
untuk mengembalikan rentang data dari segmen kueri apa pun. Untuk melakukan ini, teruskan indeks elemen pertama rentang ke klausul Skip
dan ukuran rentang ke klausul Take
. Dalam hal ini, klausul Take
harus ditentukan setelah klausul Skip
.
Saat menggunakan klausul Take
dalam kueri, Anda mungkin juga perlu memastikan bahwa hasilnya dikembalikan dalam urutan yang akan memungkinkan klausul Take
untuk menyertakan hasil yang dimaksudkan. Untuk informasi selengkapnya tentang mengurutkan hasil kueri, lihat Urutkan Menurut Klausul.
Anda dapat menggunakan klausul TakeWhile
untuk menentukan bahwa hanya elemen tertentu yang dikembalikan, tergantung pada kondisi yang disediakan.
Contoh
Contoh kode berikut menggunakan klausul Take
bersama dengan klausul Skip
untuk mengembalikan data dari kueri di halaman. Fungsi GetCustomers ini menggunakan klausul Skip
untuk melewati pelanggan dalam daftar hingga nilai indeks awal yang disediakan, dan menggunakan klausul Take
untuk mengembalikan halaman pelanggan yang dimulai dari nilai indeks tersebut.
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