Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Retorna um número especificado de elementos contíguos do início de uma coleção.
Sintaxe
Take count
Partes
count
Obrigatório Um valor ou uma expressão que é avaliada como o número de elementos da sequência a ser retornado.
Observações
A Take cláusula faz com que uma consulta inclua um número especificado de elementos contíguos desde o início de uma lista de resultados. O número de elementos a serem incluídos é especificado pelo count parâmetro.
Você pode usar a Take cláusula com a Skip cláusula para retornar um intervalo de dados de qualquer segmento de uma consulta. Para fazer isso, passe o índice do primeiro elemento do intervalo para a Skip cláusula e o tamanho do intervalo para a Take cláusula. Nesse caso, a Take cláusula deve ser especificada após a Skip cláusula.
Ao usar a Take cláusula em uma consulta, talvez você também precise garantir que os resultados sejam retornados em uma ordem que permitirá que a Take cláusula inclua os resultados pretendidos. Para obter mais informações sobre como ordenar resultados da consulta, consulte Cláusula Order By.
Você pode usar a TakeWhile cláusula para especificar que apenas determinados elementos sejam retornados, dependendo de uma condição fornecida.
Exemplo
O exemplo de código a seguir usa a Take cláusula junto com a Skip cláusula para retornar dados de uma consulta em páginas. A função GetCustomers usa a Skip cláusula para ignorar os clientes na lista até o valor de índice inicial fornecido e usa a Take cláusula para retornar uma página de clientes a partir desse valor de índice.
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