Sdílet prostřednictvím


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ů:

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

Enumerable.AsEnumerable<TSource>

AsQueryable

Převede (Obecné) IEnumerable k (Obecné) IQueryable.

Nelze použít

Nelze použít

Queryable.AsQueryable

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 …

Enumerable.Cast<TResult>

Queryable.Cast<TResult>

OfType

Hodnoty v závislosti na jejich schopnost přetypovat na zadaný typ filtrů.

Nelze použít

Nelze použít

Enumerable.OfType<TResult>

Queryable.OfType<TResult>

ToArray

Kolekce převede na matici.Tato metoda vynutí spuštění dotazu.

Nelze použít

Nelze použít

Enumerable.ToArray<TSource>

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

Enumerable.ToDictionary

ToList

Kolekce se převede List<T>.Tato metoda vynutí spuštění dotazu.

Nelze použít

Nelze použít

Enumerable.ToList<TSource>

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

Enumerable.ToLookup

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
    */
}

Viz také

Úkoly

Jak: dotaz ArrayList s LINQ

Referenční dokumentace

z klauzule (C#-Reference)

Z klauzule (Visual Basic)

System.Linq

Koncepty

Přehled operátorů standardní dotaz

LINQ dotazu výrazy (Příručka programování C#)