A partir da cláusula (Visual Basic)

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

  • 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 Aggregate Clause (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

Conceitos

Introdução ao LINQ no Visual Basic

Referência

For each... Next demonstrativo (Visual Basic)

For... Next demonstrativo (Visual Basic)

Cláusula Select (Visual Basic)

Clúasula Where (Visual Basic)

Aggregate Clause (Visual Basic)

Cláusula Distinta (Visual Basic)

Cláusula de adição (Visual Basic)

Cláusula Join Group (Visual Basic)

Ordem By cláusula (Visual Basic)

Cláusula Let (Visual Basic)

Ignorar a cláusula (Visual Basic)

Tomar cláusula (Visual Basic)

Ignorar Cláusula While (Visual Basic)

Levar ao cláusula (Visual Basic)

Outros recursos

Consultas(Visual Basic)