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 From Select mediante las Join Group Join cláusulas o .

  • Use la Where cláusula para filtrar el resultado de la consulta.

  • Ordene el resultado mediante la Order By cláusula .

  • Agrupar resultados similares mediante la Group By cláusula .

  • Use la Aggregate cláusula para identificar las funciones de agregado para evaluar el resultado completo de la consulta.

  • Use la Let clá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 Distinct para omitir los resultados duplicados de la consulta.

  • Identifique las partes del resultado que se devolverán mediante las Skip Take Skip While cláusulas , , y Take 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