Queryable.Cast<TResult>(IQueryable) Metoda

Definice

Převede prvky objektu na IQueryable zadaný 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);
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 který chcete převést prvky.source

Parametry

source
IQueryable

Obsahuje IQueryable prvky, které mají být převedeny.

Návraty

IQueryable<TResult>

Obsahuje IQueryable<T> každý prvek zdrojové sekvence převedený na zadaný typ.

Výjimky

source je null.

Prvek v sekvenci nelze přetypovat na typ TResult.

Příklady

Následující příklad kódu ukazuje, jak použít Cast<TResult>(IQueryable) k převodu objektů v sekvenci 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

Poznámky

Metoda Cast<TResult>(IQueryable) vygeneruje metodu MethodCallExpression , která představuje volání Cast<TResult>(IQueryable) sebe sama jako konstruovanou obecnou metodu. Pak předá MethodCallExpression metodu IQueryProviderCreateQuery(Expression) reprezentované Provider vlastností parametru source .

Chování dotazu, ke kterému dochází v důsledku spuštění stromu výrazů, který představuje volání Cast<TResult>(IQueryable) , závisí na implementaci typu parametru source . Očekávané chování spočívá v tom, že převede hodnoty v source na typ TResult.

Platí pro