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.
Define el resultado de una consulta.
Sintaxis
Select [ var1 = ] fieldName1 [, [ var2 = ] fieldName2 [...] ]
Partes
var1
Opcional. Alias que se puede usar para hacer referencia a los resultados de la expresión de columna.
fieldName1
Obligatorio. Nombre del campo que se va a devolver en el resultado de la consulta.
Observaciones
Puede usar la Select cláusula para definir los resultados que se van a devolver desde una consulta. Esto le permite definir los miembros de un nuevo tipo anónimo creado por una consulta o para dirigirse a los miembros de un tipo con nombre devuelto por una consulta. La Select cláusula no es necesaria para una consulta. Si no se especifica ninguna Select cláusula, la consulta devolverá un tipo basado en todos los miembros de las variables de intervalo identificadas para el ámbito actual. Para obtener más información, vea Tipos anónimos. Cuando una consulta crea un tipo con nombre, devolverá un resultado de tipo IEnumerable<T> donde T es el tipo creado.
La Select cláusula puede hacer referencia a cualquier variable del ámbito actual. Esto incluye variables de rango identificadas en la From cláusula (o From cláusulas). También incluye las nuevas variables creadas con un alias por las Aggregatecláusulas , Let, Group ByGroup Join o , o variables de una cláusula anterior Select en la expresión de consulta. La Select cláusula también puede incluir valores estáticos. Por ejemplo, en el ejemplo de código siguiente se muestra una expresión de consulta en la que la cláusula define el resultado de la Select consulta como un nuevo tipo anónimo con cuatro miembros: ProductName, Price, Discounty DiscountedPrice. Los ProductName valores de miembro y Price se toman de la variable de intervalo de productos que se define en la From cláusula . El DiscountedPrice valor de miembro se calcula en la Let cláusula . El Discount miembro es un valor estático.
' 10% discount
Dim discount_10 = 0.1
Dim priceList =
From product In products
Let DiscountedPrice = product.UnitPrice * (1 - discount_10)
Select product.ProductName, Price = product.UnitPrice,
Discount = discount_10, DiscountedPrice
La Select cláusula introduce un nuevo conjunto de variables de intervalo para las cláusulas de consulta posteriores y las variables de intervalo anteriores ya no están en el ámbito. La última Select cláusula de una expresión de consulta determina el valor devuelto de la consulta. Por ejemplo, la consulta siguiente devuelve el nombre de la empresa y el identificador de pedido de cada pedido de cliente para el que el total supera los 500. La primera Select cláusula identifica las variables de intervalo de la Where cláusula y la segunda Select . La segunda Select cláusula identifica los valores devueltos por la consulta como un nuevo tipo anónimo.
Dim customerList = From cust In customers, ord In cust.Orders
Select Name = cust.CompanyName,
Total = ord.Total, ord.OrderID
Where Total > 500
Select Name, OrderID
Si la Select cláusula identifica un único elemento que se va a devolver, la expresión de consulta devuelve una colección del tipo de ese único elemento. Si la Select cláusula identifica varios elementos que se van a devolver, la expresión de consulta devuelve una colección de un nuevo tipo anónimo, en función de los elementos seleccionados. Por ejemplo, las dos consultas siguientes devuelven colecciones de dos tipos diferentes en función de la Select cláusula . La primera consulta devuelve una colección de nombres de empresa como cadenas. La segunda consulta devuelve una colección de objetos rellenados con los nombres de Customer la compañía y la información de dirección.
Dim customerNames = From cust In customers
Select cust.CompanyName
Dim customerInfo As IEnumerable(Of Customer) =
From cust In customers
Select New Customer With {.CompanyName = cust.CompanyName,
.Address = cust.Address,
.City = cust.City,
.Region = cust.Region,
.Country = cust.Country}
Ejemplo
La siguiente expresión de consulta usa una From cláusula para declarar una variable cust de intervalo para la customers colección. La Select cláusula selecciona el nombre del cliente y el valor de id. y rellena las CompanyName columnas y CustomerID de la nueva variable de intervalo. La For Each instrucción recorre en bucle cada objeto devuelto y muestra las CompanyName columnas y CustomerID para cada registro.
Sub SelectCustomerNameAndId(ByVal customers() As Customer)
Dim nameIds = From cust In customers
Select cust.CompanyName, cust.CustomerID
For Each nameId In nameIds
Console.WriteLine(nameId.CompanyName & ": " & nameId.CustomerID)
Next
End Sub