Partager via


Select, clause (Visual Basic)

Définit le résultat d’une requête.

Syntaxe

Select [ var1 = ] fieldName1 [, [ var2 = ] fieldName2 [...] ]  

Pièces

var1
Optionnel. Alias qui peut être utilisé pour référencer les résultats de l’expression de colonne.

fieldName1
Obligatoire. Nom du champ à retourner dans le résultat de la requête.

Remarques

Vous pouvez utiliser la Select clause pour définir les résultats à retourner à partir d’une requête. Cela vous permet de définir les membres d’un nouveau type anonyme créé par une requête ou de cibler les membres d’un type nommé retourné par une requête. La Select clause n’est pas requise pour une requête. Si aucune clause n’est Select spécifiée, la requête retourne un type basé sur tous les membres des variables de plage identifiées pour l’étendue actuelle. Pour plus d’informations, consultez Types anonymes. Lorsqu’une requête crée un type nommé, elle retourne un résultat de type IEnumerable<T>T est le type créé.

La Select clause peut référencer toutes les variables dans l’étendue actuelle. Cela inclut les variables de plage identifiées dans la From clause (ou From les clauses). Il inclut également toutes les nouvelles variables créées avec un alias par les Aggregateclauses , Letou Group ByGroup Join clauses ou variables d’une clause précédente Select dans l’expression de requête. La Select clause peut également inclure des valeurs statiques. Par exemple, l’exemple de code suivant montre une expression de requête dans laquelle la clause définit le résultat de la Select requête comme un nouveau type anonyme avec quatre membres : ProductName, , PriceDiscountet DiscountedPrice. Les ProductName valeurs membres et Price les valeurs sont extraites de la variable de plage de produits définie dans la From clause. La DiscountedPrice valeur de membre est calculée dans la Let clause. Le Discount membre est une valeur statique.

' 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 clause introduit un nouvel ensemble de variables de plage pour les clauses de requête suivantes, et les variables de plage précédentes ne sont plus dans l’étendue. La dernière Select clause d’une expression de requête détermine la valeur de retour de la requête. Par exemple, la requête suivante retourne le nom de la société et l’ID de commande pour chaque commande client pour laquelle le total dépasse 500. La première Select clause identifie les variables de plage pour la Where clause et la deuxième Select clause. La deuxième Select clause identifie les valeurs retournées par la requête en tant que nouveau type anonyme.

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 clause identifie un seul élément à retourner, l’expression de requête retourne une collection du type de cet élément unique. Si la Select clause identifie plusieurs éléments à retourner, l’expression de requête retourne une collection d’un nouveau type anonyme, en fonction des éléments sélectionnés. Par exemple, les deux requêtes suivantes retournent des collections de deux types différents en fonction de la Select clause. La première requête retourne une collection de noms d’entreprise sous forme de chaînes. La deuxième requête retourne une collection d’objets Customer renseignés avec les noms d’entreprise et les informations d’adresse.

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}

Exemple :

L’expression de requête suivante utilise une From clause pour déclarer une variable cust de plage pour la customers collection. La Select clause sélectionne le nom du client et la valeur d’ID et remplit les colonnes et CustomerID les CompanyName colonnes de la nouvelle variable de plage. L’instruction For Each effectue une boucle sur chaque objet retourné et affiche les colonnes et CustomerID les CompanyName colonnes de chaque enregistrement.

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

Voir aussi