Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Especifica una o varias variables de intervalo y una colección que se va a consultar.
Sintaxis
From element [ As type ] In collection [ _ ]
[, element2 [ As type2 ] In collection2 [, ... ] ]
Partes
| Término | Definición |
|---|---|
element |
Obligatorio. Variable de rango usada para recorrer en iteración los elementos de la colección. Se usa una variable de intervalo para hacer referencia a cada miembro de collection como la consulta recorre en iteración .collection Debe ser un tipo enumerable. |
type |
Opcional. Tipo de element. Si no se especifica , type el tipo de element se deduce de collection. |
collection |
Obligatorio. Hace referencia a la colección que se va a consultar. Debe ser un tipo enumerable. |
Observaciones
La From cláusula se usa para identificar los datos de origen de una consulta y las variables que se usan para hacer referencia a un elemento de la colección de origen. Estas variables se denominan variables de rango. La From cláusula es necesaria para una consulta, excepto cuando la Aggregate cláusula se usa para identificar una consulta que devuelve solo los resultados agregados. Para obtener más información, vea Cláusula aggregate.
Puede especificar varias From cláusulas en una consulta para identificar varias colecciones que se van a unir. Cuando se especifican varias colecciones, se iteran de forma independiente o se pueden combinar si están relacionadas. Puede combinar colecciones implícitamente mediante la Select cláusula o explícitamente mediante las Join cláusulas o Group Join . Como alternativa, puede especificar varias variables de rango y colecciones en una sola From cláusula, con cada variable de intervalo relacionada y colección separadas de las demás por una coma. En el ejemplo de código siguiente se muestran ambas opciones de sintaxis para la 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
La From cláusula define el ámbito de una consulta, que es similar al ámbito de un For bucle. Por lo tanto, cada element variable de intervalo en el ámbito de una consulta debe tener un nombre único. Dado que puede especificar varias From cláusulas para una consulta, las cláusulas posteriores From pueden hacer referencia a variables de rango en la From cláusula o pueden hacer referencia a variables de rango en una cláusula anterior From . Por ejemplo, en el ejemplo siguiente se muestra una cláusula anidada From donde la colección de la segunda cláusula se basa en una propiedad de la variable de rango en la primera cláusula.
Dim allOrders = From cust In GetCustomerList()
From ord In cust.Orders
Select ord
Cada From cláusula puede ir seguida de cualquier combinación de cláusulas de consulta adicionales para refinar la consulta. Puede refinar la consulta de las maneras siguientes:
Combine varias colecciones implícitamente mediante las
Fromcláusulas ySelect, o explícitamente mediante lasJoincláusulas oGroup Join.Use la
Wherecláusula para filtrar el resultado de la consulta.Ordene el resultado mediante la
Order Bycláusula .Agrupar resultados similares mediante la
Group Bycláusula .Use la
Aggregatecláusula para identificar las funciones de agregado que se van a evaluar para todo el resultado de la consulta.Use la
Letcláusula para introducir una variable de iteración cuyo valor viene determinado por una expresión en lugar de una colección.Use la cláusula para omitir los
Distinctresultados de la consulta duplicada.Identifique partes del resultado que se van a devolver mediante las
Skipcláusulas ,Take,Skip WhileyTake While.
Ejemplo
La siguiente expresión de consulta usa una From cláusula para declarar una variable cust de intervalo para cada Customer objeto de la customers colección. La Where cláusula usa la variable de intervalo para restringir la salida a los clientes de la región especificada. El For Each bucle muestra el nombre de la compañía para cada cliente en el resultado de la 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 también
- Consultas
- Introducción a LINQ en Visual Basic
- Instrucción For Each...Next
- Instrucción For...Next
- Cláusula de Selección
- Cláusula Where
- Cláusula Aggregate
- Cláusula Distinta
- Cláusula Join
- Cláusula de Unión de Grupos
- Cláusula Order By
- Let (cláusula)
- Cláusula Skip
- Cláusula Take
- Cláusula Skip While
- Cláusula Take While