Převod datových typů
Metody převodu změnit typ vstupní objekty.
Operace převodu v LINQ dotazy jsou užitečné v různých aplikacích.Následuje několik příkladů:
Enumerable.AsEnumerable<TSource> Metody lze skrýt určitý typ vlastní provádění operátor standardního dotazu.
Enumerable.OfType<TResult> Metoda slouží k povolení-Parametrizovaná kolekce pro dotazování LINQ.
Enumerable.ToArray<TSource>, Enumerable.ToDictionary, Enumerable.ToList<TSource>, A Enumerable.ToLookup metody vynutit spuštění dotazu okamžité namísto jej odložit, dokud je uveden dotaz.
Metody
Následující tabulka obsahuje metody operátor standardního dotazu, které provádět převody datového typu.
Metody převodu v této tabulce, jejichž názvy začínají řetězcem "Jako" změnit statického typu zdrojové kolekce, ale není k jejich výčet.Zadejte metody, jejichž názvy začínají řetězcem "Na výčet kolekce zdroje a položky do odpovídající kolekce".
Název metody |
Description |
Syntaxi výrazu dotazu C# |
Visual BasicSyntaxe dotazu výraz |
Další informace |
---|---|---|---|---|
Jako výčet |
Vrátí vstup zadaný jako IEnumerable<T>. |
Nelze použít |
Nelze použít |
|
AsQueryable |
Převede (Obecné) IEnumerable k (Obecné) IQueryable. |
Nelze použít |
Nelze použít |
|
Změna typu |
Vrhá prvků kolekce do zadaného typu. |
Pomocí proměnné explicitně zadaný rozsah.Příklad: from string str in words |
From … As … |
|
OfType |
Hodnoty v závislosti na jejich schopnost přetypovat na zadaný typ filtrů. |
Nelze použít |
Nelze použít |
|
ToArray |
Kolekce převede na matici.Tato metoda vynutí spuštění dotazu. |
Nelze použít |
Nelze použít |
|
ToDictionary |
Umístí prvky do Dictionary<TKey, TValue> základě volič klíčové funkce.Tato metoda vynutí spuštění dotazu. |
Nelze použít |
Nelze použít |
|
ToList |
Kolekce se převede List<T>.Tato metoda vynutí spuštění dotazu. |
Nelze použít |
Nelze použít |
|
ToLookup |
Umístí prvky do Lookup<TKey, TElement> (slovník n) založené na volič klíčové funkce.Tato metoda vynutí spuštění dotazu. |
Nelze použít |
Nelze použít |
Příklad syntaxe výraz dotazu
Následující příklad kódu používá proměnnou explicitně zadán rozsah v C# nebo From As v klauzuli Visual Basic k typu a podtypu odevzdaných před přístupem člen, který je k dispozici pouze na podtyp.
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
class Plant
{
public string Name { get; set; }
}
class CarnivorousPlant : Plant
{
public string TrapType { get; set; }
}
static void Cast()
{
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 (Plant plant in query)
Console.WriteLine(plant.Name);
/* This code produces the following output:
Venus Fly Trap
Waterwheel Plant
*/
}