Da cláusula (Visual Basic)
Especifica uma ou mais variáveis de intervalo e uma coleção a ser consultada.
Sintaxe
From element [ As type ] In collection [ _ ]
[, element2 [ As type2 ] In collection2 [, ... ] ]
Partes
Termo | Definição |
---|---|
element |
Obrigatório. Uma variável de intervalo usada para iterar através dos elementos da coleção. Uma variável range é usada para se referir a cada membro do à medida que a collection consulta itera através do collection . Deve ser um tipo enumerável. |
type |
Opcional. O tipo de element . Se não type for especificado, o tipo de é inferido a partir de element collection . |
collection |
Obrigatório. Refere-se à coleção a ser consultada. Deve ser um tipo enumerável. |
Observações
A From
cláusula é usada para identificar os dados de origem para uma consulta 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 de variáveis de intervalo. A From
cláusula é necessária para uma consulta, exceto quando a Aggregate
cláusula é usada para identificar uma consulta que retorna apenas resultados agregados. Para obter mais informações, consulte Cláusula agregada.
Você pode especificar várias From
cláusulas em uma consulta para identificar várias coleções a serem associadas. Quando várias coleções são especificadas, elas são iteradas de forma independente ou você pode juntá-las se estiverem relacionadas. Você pode unir coleções implicitamente usando a Select
cláusula ou explicitamente usando as Join
cláusulas or Group Join
. Como alternativa, você pode especificar várias variáveis de intervalo e coleções em uma única From
cláusula, com cada variável de intervalo relacionada e coleção separada das outras por uma vírgula. O exemplo de código a seguir mostra ambas as opções de sintaxe para a From
cláusula.
' 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 From
cláusula define o escopo de uma consulta, que é semelhante ao escopo de um For
loop. Portanto, cada element
variável de intervalo no escopo de uma consulta deve ter um nome exclusivo. Como você pode especificar várias From
cláusulas para uma consulta, as From
cláusulas subsequentes From
podem se referir a variáveis de intervalo na cláusula ou podem se referir a variáveis de intervalo em uma cláusula anteriorFrom
. Por exemplo, o exemplo a seguir mostra uma cláusula aninhada From
em que a coleção na segunda cláusula é baseada em uma propriedade da variável range na primeira cláusula.
Dim allOrders = From cust In GetCustomerList()
From ord In cust.Orders
Select ord
Cada From
cláusula pode ser seguida por qualquer combinação de cláusulas de consulta adicionais para refinar a consulta. Você pode refinar a consulta das seguintes maneiras:
Combine várias coleções implicitamente usando as
From
cláusulas eSelect
ou explicitamente usando asJoin
cláusulas orGroup Join
.Use a
Where
cláusula para filtrar o resultado da consulta.Classifique o resultado usando a
Order By
cláusula.Agrupe resultados semelhantes usando a
Group By
cláusula.Use a
Aggregate
cláusula para identificar funções agregadas para avaliar todo o resultado da consulta.Use a
Let
cláusula para introduzir uma variável de iteração cujo valor é determinado por uma expressão em vez de uma coleção.Use a
Distinct
cláusula para ignorar resultados de consulta duplicados.Identifique partes do resultado a serem retornadas usando as
Skip
cláusulas ,Take
,Skip While
eTake While
.
Exemplo
A expressão de consulta a seguir usa uma From
cláusula para declarar uma variável cust
range para cada Customer
objeto na customers
coleção. A Where
cláusula usa a variável range para restringir a saída aos clientes da região especificada. O For Each
loop 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
- Consultas
- Introdução ao LINQ no Visual Basic
- Para cada um... Próxima declaração
- Para... Próxima declaração
- Selecionar cláusula
- Onde Cláusula
- Cláusula agregada
- Cláusula distinta
- Cláusula de adesão
- Cláusula de Adesão ao Grupo
- Encomendar por Cláusula
- Cláusula Let
- Cláusula de pulo
- Cláusula Take
- Cláusula Skip While
- Cláusula Take While