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 :
La méthode Enumerable.AsEnumerable peut être utilisée pour masquer l’implémentation personnalisée d’un type d’un opérateur de requête standard.
La méthode Enumerable.OfType peut être utilisée pour activer des collections non paramétrables pour l’interrogation LINQ.
Les méthodes Enumerable.ToArray, Enumerable.ToDictionary, Enumerable.ToList et Enumerable.ToLookup peuvent être utilisées pour forcer l’exécution immédiate de la requête au lieu de la différer jusqu’à ce que la requête soit énumérée.
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