Bagikan melalui


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

Lihat juga