Partager via


Conversion des types de données (Visual Basic)

Les méthodes de conversion changent le type d’objets en 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 types de données.

Les méthodes de conversion de ce tableau 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 Description Syntaxe de l'expression de requête en Visual Basic Informations complémentaires
AsEnumerable Retourne l’entrée typée comme IEnumerable<T>. Non applicable. Enumerable.AsEnumerable
AsQueryable Convertit un IEnumerable (générique) en IQueryable (générique). Non applicable. Queryable.AsQueryable
Caster Effectue un cast des éléments d’une collection en un type spécifié. From … As … Enumerable.Cast

Queryable.Cast
OfType Filtre les valeurs en fonction de leur capacité à faire l’objet d’un cast en un type spécifié. Non applicable. Enumerable.OfType

Queryable.OfType
ToArray Convertit une collection en un tableau. Cette méthode force l’exécution de la requête. 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 de la requête. Non applicable. Enumerable.ToDictionary
ToList Convertit une collection en List<T>. Cette méthode force l’exécution de la requête. 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 de la requête. Non applicable. Enumerable.ToLookup

Exemple de syntaxe d’expression de requête

L’exemple de code suivant utilise la clause From As pour caster 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