Partager via


Conversion de types de données (Visual Basic)

Les méthodes de conversion modifient le type d’objets d’entrée.

Les opérations de conversion dans les requêtes LINQ sont utiles dans diverses applications. Voici quelques exemples :

Méthodes

Le tableau suivant répertorie les méthodes d’opérateur de requête standard qui effectuent des conversions de type de données.

Les méthodes de conversion de cette table dont les noms commencent par « As » modifient le type statique de la collection source, mais ne l’énumérent pas. Les méthodes dont les noms commencent par « To » énumèrent la collection source et placent les éléments dans le type de collection correspondant.

Nom de la méthode Descriptif Syntaxe de l’expression de requête Visual Basic Plus d’informations
AsEnumerable Retourne l’entrée typée en tant que IEnumerable<T>. Non applicable. Enumerable.AsEnumerable
AsQueryable Convertit un (générique) IEnumerable en un (générique) IQueryable. Non applicable. Queryable.AsQueryable
Caster Convertit les éléments d’une collection en type spécifié. From … As … Enumerable.Cast

Queryable.Cast
OfType Filtre les valeurs en fonction de leur capacité à être converties vers un type spécifié. Non applicable. Enumerable.OfType

Queryable.OfType
ToArray Convertit une collection en tableau. Cette méthode force l’exécution des requêtes. Non applicable. Enumerable.ToArray
ToDictionary Place des éléments dans un Dictionary<TKey,TValue> basé sur une fonction de sélecteur de clés. Cette méthode force l’exécution des requêtes. Non applicable. Enumerable.ToDictionary
ToList Convertit une collection en List<T>. Cette méthode force l’exécution des requêtes. Non applicable. Enumerable.ToList
ToLookup Place des éléments dans un Lookup<TKey,TElement> (un dictionnaire de type un-à-plusieurs) basé sur une fonction de sélecteur de clés. Cette méthode force l’exécution des requêtes. Non applicable. Enumerable.ToLookup

Exemple de syntaxe d’expression de requête

L’exemple de code suivant utilise la From As clause pour convertir un type en sous-type avant d’accéder à un membre disponible uniquement sur le sous-type.

Class Plant
    Public Property Name As String
End Class

Class CarnivorousPlant
    Inherits Plant
    Public Property TrapType As String
End Class

Sub Cast()

    Dim plants() As Plant = {
        New CarnivorousPlant With {.Name = "Venus Fly Trap", .TrapType = "Snap Trap"},
        New CarnivorousPlant With {.Name = "Pitcher Plant", .TrapType = "Pitfall Trap"},
        New CarnivorousPlant With {.Name = "Sundew", .TrapType = "Flypaper Trap"},
        New CarnivorousPlant With {.Name = "Waterwheel Plant", .TrapType = "Snap Trap"}}

    Dim query = From plant As CarnivorousPlant In plants
                Where plant.TrapType = "Snap Trap"
                Select plant

    Dim sb As New System.Text.StringBuilder()
    For Each plant In query
        sb.AppendLine(plant.Name)
    Next

    ' Display the results.
    MsgBox(sb.ToString())

    ' This code produces the following output:

    ' Venus Fly Trap
    ' Waterwheel Plant

End Sub

Voir aussi