Udostępnij za pośrednictwem


Konwersja typów danych

Metody konwersji zmienić typ wejściowy obiektów.

Operacje konwersji w kwerendach LINQ są przydatne w różnych aplikacji.Poniżej przedstawiono kilka przykładów:

Metody

Poniższa lista zawiera metody operator standardowej kwerendy wykonujące konwersje typów danych.

Metody konwersji w tej tabeli, których nazwa zaczyna się od "Jako" Zmiana statyczne typu kolekcji źródła, ale nie wyliczyć.Metody, których nazwy zaczynają się "Do wyliczyć kolekcji źródłowej i wprowadzane elementy do kolekcji odpowiedniego" typu.

Nazwa metody

Opis

Kwerendy języka C# składni wyrażenia

Visual BasicSkładni wyrażenia kwerendy

Więcej informacji

AsEnumerable

Zwraca dane wejściowe, wpisana jako IEnumerable<T>.

Nie dotyczy.

Nie dotyczy.

Enumerable.AsEnumerable<TSource>

AsQueryable

Konwertuje (rodzajowa) IEnumerable do (rodzajowa) IQueryable.

Nie dotyczy.

Nie dotyczy.

Queryable.AsQueryable

Obsada

Posługując się miarką elementów kolekcji do określonego typu.

Można użyć zmiennej zakres jawnie maszynowy.Na przykład:

from string str in words

From … As …

Enumerable.Cast<TResult>

Queryable.Cast<TResult>

OfType

Filtry wartości, w zależności od ich zdolności do oddawany do określonego typu.

Nie dotyczy.

Nie dotyczy.

Enumerable.OfType<TResult>

Queryable.OfType<TResult>

ToArray

Konwertuje kolekcji do tablicy.Ta metoda wymusza wykonanie kwerendy.

Nie dotyczy.

Nie dotyczy.

Enumerable.ToArray<TSource>

ToDictionary

Umieszcza elementy w Dictionary<TKey, TValue> na podstawie funkcji selektor klucza.Ta metoda wymusza wykonanie kwerendy.

Nie dotyczy.

Nie dotyczy.

Enumerable.ToDictionary

ToList

Konwertuje kolekcji do List<T>.Ta metoda wymusza wykonanie kwerendy.

Nie dotyczy.

Nie dotyczy.

Enumerable.ToList<TSource>

ToLookup

Umieszcza elementy w Lookup<TKey, TElement> (słownika jeden do wielu) na podstawie funkcji selektor klucza.Ta metoda wymusza wykonanie kwerendy.

Nie dotyczy.

Nie dotyczy.

Enumerable.ToLookup

Przykład składni wyrażenia kwerendy

Poniższy przykład kodu użyto zmiennej jawnie określone typy zakres w języku C# lub From As w klauzuli Visual Basic do oddania typu z podtypem przed uzyskaniem dostępu do członka, który jest dostępny tylko na podtypu.

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

Zobacz też

Zadania

Jak: kwerendy ArrayList LINQ

Informacje

z klauzuli (C# odniesienia)

Z klauzuli (Visual Basic)

System.Linq

Koncepcje

Omówienie operatory kwerendy standardowe

Wyrażenia w kwerendzie LINQ (Podręcznik programowania C#)