Compartilhar via


Cláusula Select (Visual Basic)

Define o resultado de uma consulta.

Select [ var1 = ] fieldName1 [, [ var2 = ] fieldName2 [...] ]

Partes

  • var1
    Opcional. Um alias que pode ser usado para referenciar os resultados da expressão de coluna.

  • fieldName1
    Obrigatório. O nome do campo para retornar o resultado da consulta.

Comentários

Você pode usar a cláusula Select para definir os resultados retornados de uma consulta. Isso permite definir os membros de um novo tipo anônimo que é criado por uma consulta, ou direcionar os membros de um tipo nomeado que é retornado por uma consulta. A cláusula Select não é necessária para uma consulta. Se uma cláusula Select for especificada, a consulta retornará um tipo com base em todos os membros das variáveis de intervalo identificadas no escopo atual. Para obter mais informações, consulte Tipos anônimos (Visual Basic). Quando uma consulta cria um tipo nomeado, ela retornará resultado do tipo IEnumerable onde T é do tipo criado.

A cláusula Select pode referenciar qualquer variável no escopo atual. Isso inclui variáveis de intervalo identificadas na cláusula From (ou cláusulas From). Também inclui quaisquer variáveis novas criadas com um alias por cláusulasAggregate, Let,Group By,ou Group Join , ou variáveis de uma cláusula Select anterior na expressão de consulta. A cláusula Select também pode incluir valores estáticos. Por exemplo, o exemplo de código a seguir mostra uma expressão de consulta na qual a cláusula Select define o resultado da consulta como um novo tipo anônimo com quatro integrantes: ProductName,Price,Discount e DiscountedPrice. O ProductName e os valores membro Price são tirados da variável de intervalo do produto que está definida na cláusula From. O valor do membroDiscountedPrice é calculado na cláusula Let. O membro Discount é um valor estático.

' 10% discount  
Dim discount_10 = 0.1
Dim priceList =
  From product In products
  Let DiscountedPrice = product.UnitPrice * (1 - discount_10)
  Select product.ProductName, Price = product.UnitPrice,
  Discount = discount_10, DiscountedPrice

A cláusula Select apresenta um novo conjunto de variáveis de Intervalo para cláusulas de consulta subsequentes, e variáveis intervalo anteriores não estão mais no escopo. A última cláusula Select em uma expressão de consulta determina o valor de retorno da consulta. Por exemplo, a seguinte consulta retorna a empresa nome e a ordem de ID para cada pedido do cliente para o qual o total exceder 500. O primeiro Select cláusula identifica as variáveis de intervalo para o Where e a segunda cláusula Select cláusula. A segunda cláusula Select identifica os valores retornados pela consulta como um novo tipo anônimo.

Dim customerList = From cust In customers, ord In cust.Orders
                   Select Name = cust.CompanyName,
                          Total = ord.Total, ord.OrderID
                   Where Total > 500
                   Select Name, OrderID

Se a cláusula Select identifica um único item para retornar, a expressão de consulta retorna uma coleção do tipo daquele item único. Se a cláusula Select identifica vários itens para retornar, a expressão de consulta retorna uma coleção de um novo tipo anônimo, com base nos itens selecionados. Por exemplo, as duas consultas a seguir retornam coleções de dois tipos diferentes com base na cláusula Select. A primeira consulta retorna uma coleção de nomes de empresa como sequências de caracteres. A segunda consulta retorna uma coleção de objetos Customer preenchida com os nomes de empresa e informações de endereço.

Dim customerNames = From cust In customers 
                    Select cust.CompanyName

Dim customerInfo As IEnumerable(Of Customer) =
  From cust In customers
  Select New Customer With {.CompanyName = cust.CompanyName,
                             .Address = cust.Address,
                             .City = cust.City,
                             .Region = cust.Region,
                             .Country = cust.Country}

Exemplo

A expressão de consulta a seguir usa uma cláusula From para declarar uma variável de intervalod cust para a coleção customers. A cláusula Select seleciona o nome do cliente e valor de identificação e preenche as colunas CompanyName e CustomerID da nova variável de intervalo. A instrução For Each circula por cada objeto retornado e exibe as colunas CompanyName e CustomerID para cada registro.

Sub SelectCustomerNameAndId(ByVal customers() As Customer)
  Dim nameIds = From cust In customers
                Select cust.CompanyName, cust.CustomerID
  For Each nameId In nameIds
    Console.WriteLine(nameId.CompanyName & ": " & nameId.CustomerID)
  Next 
End Sub

Consulte também

Referência

Cláusula From (Visual Basic)

Cláusula Where (Visual Basic)

Cláusula Order By (Visual Basic)

Conceitos

Introdução a LINQ no Visual Basic

Tipos anônimos (Visual Basic)

Outros recursos

Consultas (Visual Basic)