Conversions dans LINQ
Les opérateurs changent le type d'objets d'entrée et sont utilisés dans une large gamme d'applications.
Opérateur | La description | Syntaxe d'expression de requête C # | Syntaxe d'expression de requête VB |
---|---|---|---|
AsEnumerable | Renvoie l'entrée tapée comme IEnumerable <T> | N'est pas applicable | N'est pas applicable |
AsQueryable | Un IEnumerable (générique) est converti en un IQueryable (générique) | N'est pas applicable | N'est pas applicable |
Jeter | Effectue le cast des éléments d'une collection vers un type spécifié | Utilisez une variable de plage explicitement typée. Ex: à partir de la chaîne str dans les mots | De… En tant que… |
OfType | Filtre les valeurs en fonction de leur, en fonction de leur capacité à être transtypées en un type particulier | N'est pas applicable | N'est pas applicable |
ToArray | Force l'exécution de la requête et effectue la conversion d'une collection en tableau | N'est pas applicable | N'est pas applicable |
ToDictionary | Sur la base d'une fonction de sélection de clé, définissez les éléments dans un Dictionary <TKey, TValue> et force l'exécution d'une requête LINQ | N'est pas applicable | N'est pas applicable |
Lister | Force l'exécution d'une requête en convertissant une collection en List <T> | N'est pas applicable | N'est pas applicable |
Pour rechercher | Force l'exécution d'une requête et place des éléments dans un Lookup <TKey, TElement> sur la base d'une fonction de sélection de clé | N'est pas applicable | N'est pas applicable |
Exemple de diffusion - Expression de requête
C #
using System;
using System.Linq;
namespace Operators {
class Cast {
static void Main(string[] args) {
Plant[] plants = new Plant[] {new CarnivorousPlant { Name = "Venus Fly Trap", TrapType = "Snap Trap" },
new CarnivorousPlant { Name = "Pitcher Plant", TrapType = "Pitfall Trap" },
new CarnivorousPlant { Name = "Sundew", TrapType = "Flypaper Trap" },
new CarnivorousPlant { Name = "Waterwheel Plant", TrapType = "Snap Trap" }};
var query = from CarnivorousPlant cPlant in plants
where cPlant.TrapType == "Snap Trap"
select cPlant;
foreach (var e in query) {
Console.WriteLine("Name = {0} , Trap Type = {1}", e.Name, e.TrapType);
}
Console.WriteLine("\nPress any key to continue.");
Console.ReadKey();
}
}
class Plant {
public string Name { get; set; }
}
class CarnivorousPlant : Plant {
public string TrapType { get; set; }
}
}
VB
Module Module1
Sub Main()
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 list = From cPlant As CarnivorousPlant In plants
Where cPlant.TrapType = "Snap Trap"
Select cPlant
For Each e In list
Console.WriteLine("Name = {0} , Trap Type = {1}", e.Name, e.TrapType)
Next
Console.WriteLine(vbLf & "Press any key to continue.")
Console.ReadKey()
End Sub
Class Plant
Public Property Name As String
End Class
Class CarnivorousPlant
Inherits Plant
Public Property TrapType As String
End Class
End Module
Lorsque le code ci-dessus en C # ou VB est compilé et exécuté, il produit le résultat suivant -
Name = Venus Fly Trap, TrapType = Snap Trap
Name = Waterwheel Plant, TrapType = Snap Trap
Press any key to continue.