From (Cláusula, Visual Basic)From Clause (Visual Basic)

Especifica uno o más variables de rango y una colección a la consulta.Specifies one or more range variables and a collection to query.

SintaxisSyntax

From element [ As type ] In collection [ _ ]  
  [, element2 [ As type2 ] In collection2 [, ... ] ]  

ElementosParts

TérminoTerm DefiniciónDefinition
element Obligatorio.Required. Un variable de rango utiliza para recorrer en iteración los elementos de la colección.A range variable used to iterate through the elements of the collection. Una variable de rango se usa para referirse a cada miembro de la collection como la consulta se recorre el collection.A range variable is used to refer to each member of the collection as the query iterates through the collection. Debe ser un tipo enumerable.Must be an enumerable type.
type Opcional.Optional. Tipo de element.The type of element. Si no hay ningún type se especifica, el tipo de element se deduce del collection.If no type is specified, the type of element is inferred from collection.
collection Obligatorio.Required. Hace referencia a la colección que se van a consultar.Refers to the collection to be queried. Debe ser un tipo enumerable.Must be an enumerable type.

ComentariosRemarks

El From cláusula se usa para identificar los datos de origen para una consulta y las variables que se usan para hacer referencia a un elemento de la colección de origen.The From clause is used to identify the source data for a query and the variables that are used to refer to an element from the source collection. Estas variables se denominan las variables de rango.These variables are called range variables. El From cláusula se requiere para una consulta, excepto cuando la Aggregate cláusula se usa para identificar una consulta que devuelve resultados agregados solo.The From clause is required for a query, except when the Aggregate clause is used to identify a query that returns only aggregated results. Para obtener más información, consulte cláusula Aggregate.For more information, see Aggregate Clause.

Puede especificar varios From cláusulas en una consulta para identificar varias colecciones a unirse.You can specify multiple From clauses in a query to identify multiple collections to be joined. Cuando se especifican varias colecciones, se iteran en forma independiente o combinarlas si están relacionadas.When multiple collections are specified, they are iterated over independently, or you can join them if they are related. Puede combinar colecciones implícitamente mediante el uso de la Select cláusula, o explícitamente mediante la Join o Group Join cláusulas.You can join collections implicitly by using the Select clause, or explicitly by using the Join or Group Join clauses. Como alternativa, puede especificar varias variables de rango y colecciones en una sola From cláusula con cada variable de rango relacionado y la colección separados de los demás por una coma.As an alternative, you can specify multiple range variables and collections in a single From clause, with each related range variable and collection separated from the others by a comma. El ejemplo de código siguiente muestra ambas opciones de sintaxis para el From cláusula.The following code example shows both syntax options for the From clause.

' 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

El From cláusula define el ámbito de una consulta, que es similar al ámbito de un For bucle.The From clause defines the scope of a query, which is similar to the scope of a For loop. Por lo tanto, cada uno de ellos element variable de rango en el ámbito de una consulta debe tener un nombre único.Therefore, each element range variable in the scope of a query must have a unique name. Dado que puede especificar varios From cláusulas para una consulta, posteriores From cláusulas pueden hacer referencia a las variables de rango en la From cláusula, o bien pueden hacer referencia a las variables de rango en una anterior From cláusula.Because you can specify multiple From clauses for a query, subsequent From clauses can refer to range variables in the From clause, or they can refer to range variables in a previous From clause. Por ejemplo, en el ejemplo siguiente se muestra un anidada From cláusula donde la colección en la segunda cláusula se basa en una propiedad de la variable de rango en la primera cláusula.For example, the following example shows a nested From clause where the collection in the second clause is based on a property of the range variable in the first clause.

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.Each From clause can be followed by any combination of additional query clauses to refine the query. Puede refinar la consulta de las maneras siguientes:You can refine the query in the following ways:

  • Combinar varias colecciones implícitamente mediante la From y Select cláusulas, o explícitamente mediante la Join o Group Join cláusulas.Combine multiple collections implicitly by using the From and Select clauses, or explicitly by using the Join or Group Join clauses.

  • Use el Where cláusula para filtrar el resultado de la consulta.Use the Where clause to filter the query result.

  • Ordenar el resultado mediante la Order By cláusula.Sort the result by using the Order By clause.

  • Agrupar resultados similares mediante el uso de la Group By cláusula.Group similar results together by using the Group By clause.

  • Use el Aggregate cláusula para identificar las funciones de agregado que se evalúa para el resultado de toda la consulta.Use the Aggregate clause to identify aggregate functions to evaluate for the whole query result.

  • Use el 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 the Let clause to introduce an iteration variable whose value is determined by an expression instead of a collection.

  • Use el Distinct cláusula para pasar por alto los resultados de consulta duplicada.Use the Distinct clause to ignore duplicate query results.

  • Identificar las partes del resultado para devolver mediante el uso de la Skip, Take, Skip While, y Take While cláusulas.Identify parts of the result to return by using the Skip, Take, Skip While, and Take While clauses.

EjemploExample

Consulta la siguiente expresión utiliza una From cláusula para declarar una variable de rango cust para cada Customer objeto en el customers colección.The following query expression uses a From clause to declare a range variable cust for each Customer object in the customers collection. El Where cláusula usa la variable de rango para restringir los resultados a los clientes de la región especificada.The Where clause uses the range variable to restrict the output to customers from the specified region. El For Each bucle muestra el nombre de la empresa para cada cliente en el resultado de la consulta.The For Each loop displays the company name for each customer in the query result.

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

Vea tambiénSee also