From (Cláusula, Visual Basic)
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 intervalo utilizada para recorrer en iteración los elementos de la colección. Una variable de intervalo se usa para hacer referencia a cada miembro de a medida que la consulta recorre en collection iteración . collection Debe ser un tipo enumerable. |
type |
Opcional. Tipo de element. Si no type se especifica ningún , el tipo de se deduce de element collection . |
collection |
Necesario. Hace referencia a la colección que se va a consultar. Debe ser un tipo enumerable. |
Comentarios
La cláusula se usa para identificar los datos de origen de una consulta y las variables que se usan para hacer referencia From a un elemento de la colección de origen. Estas variables se denominan variables de intervalo. La cláusula es necesaria para una consulta, excepto cuando la cláusula se usa para identificar una consulta From Aggregate que devuelve solo resultados agregados. Para obtener más información, vea Aggregate Clause.
Puede especificar varias From cláusulas en una consulta para identificar varias colecciones que se unirán. Cuando se especifican varias colecciones, se iteran por ellas de forma independiente, o puede unirlas si están relacionadas. Puede unir colecciones implícitamente mediante la cláusula Select o explícitamente mediante las Join Group Join cláusulas o . Como alternativa, puede especificar varias variables de intervalo y colecciones en una sola cláusula, con cada variable de intervalo y colección relacionadas separadas de las demás From 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, element cada variable de intervalo del ámbito de una consulta debe tener un nombre único. Dado que puede especificar varias cláusulas para una consulta, las cláusulas posteriores pueden hacer referencia a variables de intervalo en la cláusula o pueden hacer referencia a variables de intervalo en From From una cláusula From From anterior. Por ejemplo, en el ejemplo siguiente se muestra una cláusula anidada en la que la colección de la segunda cláusula se basa en una propiedad de la From variable range de 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 cláusulas y o explícitamente
FromSelectmediante lasJoinGroup Joincláusulas o .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 para evaluar el resultado completo 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
Distinctpara omitir los resultados duplicados de la consulta.Identifique las partes del resultado que se devolverán mediante las
SkipTakeSkip Whilecláusulas , , yTake While.
Ejemplo
La siguiente expresión de consulta usa From una cláusula para declarar una variable de intervalo para cada objeto de la cust Customer customers colección. La Where cláusula usa la variable range para restringir la salida a los clientes de la región especificada. El For Each bucle muestra el nombre de la empresa 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
Consulta también
- Consultas
- Introducción a LINQ en Visual Basic
- Instrucción For Each...Next
- Instrucción For...Next
- Cláusula Select
- Where (Cláusula)
- Aggregate Clause
- Cláusula Distinct
- Join (Cláusula)
- Cláusula Group Join
- Cláusula Order By
- Let (Cláusula)
- Cláusula Skip
- Cláusula Take
- Cláusula Skip While
- Cláusula Take While