Partilhar via


(Visual Basic) da cláusula FROM

Especifica um ou mais variáveis intervalo e uma coleção para pergunta.

From element [ As type ] In collection [ _ ]
  [, element2 [ As type2 ] In collection2 [, ... ] ]

Partes

Termo

Definição

element

Obrigatório.Um alcance variável usada para percorrer os elementos da coleção.Uma variável de alcance é usada para fazer referência a cada membro do collection como a pergunta itera por meio de collection.Deve ser um tipo enumerável.

type

Opcional.O tipo de element.Se nenhum type for especificado, o tipo de element será inferido de collection.

collection

Obrigatório.Refere-se a coleção para ser consultado.Deve ser um tipo enumerável.

Comentários

A cláusula From é usada para identificar o dados de origem para uma pergunta e as variáveis que são usadas para se referir a um elemento da coleção de origem.Essas variáveis são chamadas variáveis de alcance .A cláusula From é necessária para uma consulta, exceto quando a cláusula Aggregate é usada para identificar uma consulta que retorna somente resultados agregados.Para obter mais informações, consulte Cláusula Aggregate (Visual Basic).

Você pode especificar várias cláusulas From em uma consulta para identificar várias coleções a serem unidas.Quando várias coleções são especificadas, elas são iterados através de maneira independente, ou você pode associá-los se elas estão relacionadas.Você pode associar coleções implicitamente usando a cláusula Select, ou explicitamente usando a cláusula Join ou Group Join.Como alternativa, você pode especificar diversas variáveis de alcance e coleções em uma cláusula From única, com cada variável de alcance e coleção separados dos outros por uma vírgula.O exemplo de código a seguir mostra as duas opções de sintaxe para a cláusula From.

' Multiple From clauses in a query.
Dim result = From var1 In collection1, var2 In collection2

' Equivalent syntax with a single From clause.
Dim result2 = From var1 In collection1
              From var2 In collection2

A cláusula From define o escopo de uma consulta, que é semelhante ao escopo de um loop For.Portanto, cada variável intervalo element no escopo de uma consulta deve ter um nome exclusivo.Devido ao fato de que você pode especificar várias cláusulas From para uma consulta, subsequentes cláusulas From podem referir-se a variáveis de alcance na cláusula From, ou eles podem consultar variáveis de alcance em uma cláusula From anterior.Por exemplo, o exemplo a seguir mostra uma cláusula From aninhada onde a coleção na segunda cláusula é baseada em uma propriedade da variável de alcance na cláusula primeira.

Dim allOrders = From cust In GetCustomerList()
                From ord In cust.Orders
                Select ord

Cada cláusula From pode ser seguida por qualquer combinação de cláusulas de consulta adicionais para refinar a consulta.Você pode aperfeiçoar a consulta nos seguintes aspectos:

  • Combinar várias coleções implicitamente usando as cláusulas From e Select , ou explicitamente usando as cláusulas Join ou Group Join .

  • Use a cláusula Where para filtrar o resultado da consulta.

  • Classifique os resultados usando a cláusula Order By.

  • Agrupe resultados semelhantes usando a cláusula Group By.

  • Use a cláusula Aggregate para identificar as funções agregadas para avaliar para o resultado da consulta inteira.

  • Use a cláusula Let para apresentar uma variável de iteração cujo valor é determinado por uma expressão em vez de uma coleção.

  • Use a cláusula Distinct para ignorar resultados da consulta duplicados.

  • Identificar partes do que o resultado retornar usando as cláusulas Skip, Take, Skip While e Take While .

Exemplo

A expressão de consulta a seguir usa uma cláusula From para declarar uma variável de intervalo cust para cada objeto Customer na coleção customers.A cláusula Where usa a variável de intervalo para restringir a saída para os clientes da região especificada.O loop For Each exibe o nome da empresa para cada cliente no resultado da consulta.

Sub DisplayCustomersForRegion(ByVal customers As List(Of Customer),
                              ByVal region As String)

  Dim customersForRegion = From cust In customers
                           Where cust.Region = region

  For Each cust In customersForRegion
    Console.WriteLine(cust.CompanyName)
  Next
End Sub

Consulte também

Referência

Para cada...Próxima instrução (Visual Basic)

Para...Próxima instrução (Visual Basic)

Selecione a cláusula (Visual Basic)

Onde a cláusula (Visual Basic)

Cláusula Aggregate (Visual Basic)

Cláusula DISTINCT (Visual Basic)

(Visual Basic) da cláusula de associação

Cláusula de associação de grupo (Visual Basic)

Ordem por cláusula (Visual Basic)

Permitir que a cláusula (Visual Basic)

Cláusula de ignorar (Visual Basic)

Levar a cláusula (Visual Basic)

Ignorar durante a cláusula (Visual Basic)

Se enquanto cláusula (Visual Basic)

Conceitos

Introdução ao LINQ em Visual Basic

Outros recursos

Consultas (Visual Basic)