Udostępnij za pośrednictwem


Queryable.Cast<TResult>(IQueryable) Metoda

Definicja

Konwertuje elementy elementu IQueryable na określony typ.

public:
generic <typename TResult>
[System::Runtime::CompilerServices::Extension]
 static System::Linq::IQueryable<TResult> ^ Cast(System::Linq::IQueryable ^ source);
public static System.Linq.IQueryable<TResult> Cast<TResult>(this System.Linq.IQueryable source);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
public static System.Linq.IQueryable<TResult> Cast<TResult>(this System.Linq.IQueryable source);
static member Cast : System.Linq.IQueryable -> System.Linq.IQueryable<'Result>
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")>]
static member Cast : System.Linq.IQueryable -> System.Linq.IQueryable<'Result>
<Extension()>
Public Function Cast(Of TResult) (source As IQueryable) As IQueryable(Of TResult)

Parametry typu

TResult

Typ, na który mają być konwertowane elementy source elementu na.

Parametry

source
IQueryable

Element IQueryable zawierający elementy do przekonwertowania.

Zwraca

IQueryable<TResult>

Element IQueryable<T> zawierający każdy element sekwencji źródłowej przekonwertowany na określony typ.

Atrybuty

Wyjątki

Parametr source ma wartość null.

Nie można rzutować elementu w sekwencji, aby wpisać TResult.

Przykłady

W poniższym przykładzie kodu pokazano, jak używać Cast<TResult>(IQueryable) metody do konwertowania obiektów w sekwencji na typ String.


// Create a list of objects.
List<object> words =
    new List<object> { "green", "blue", "violet" };

// Cast the objects in the list to type 'string'
// and project the first letter of each string.
IEnumerable<string> query =
    words.AsQueryable()
    .Cast<string>()
    .Select(str => str.Substring(0, 1));

foreach (string s in query)
    Console.WriteLine(s);

/*  This code produces the following output:

    g
    b
    v
*/

' Create a list of objects.
Dim words As New List(Of Object)(New Object() {"green", "blue", "violet"})

' Cast the objects in the list to type 'string'
' and project the first letter of each string.
Dim query As IEnumerable(Of String) = _
    words.AsQueryable() _
            .Cast(Of String)() _
            .Select(Function(str) str.Substring(0, 1))

For Each s As String In query
    MsgBox(s)
Next

' This code produces the following output:
'
' g
' b
' v

Uwagi

Metoda Cast<TResult>(IQueryable) generuje obiekt MethodCallExpression , który reprezentuje wywołanie Cast<TResult>(IQueryable) jako skonstruowaną metodę ogólną. Następnie przekazuje MethodCallExpression wartość do CreateQuery(Expression) metody IQueryProvider reprezentowanej przez Provider właściwość parametru source .

Zachowanie zapytania, które występuje w wyniku wykonania drzewa wyrażeń reprezentującego wywołanie Cast<TResult>(IQueryable) , zależy od implementacji typu parametru source . Oczekiwane zachowanie polega na tym, że konwertuje wartości w source pliku na typ TResult.

Dotyczy