Queryable.Cast<TResult>(IQueryable) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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ý se mají převést prvky z source
.
Parametry
- source
- IQueryable
Obsahuje IQueryable prvky, které mají být převedeny.
Návraty
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 použití 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 MethodCallExpression , který představuje volání Cast<TResult>(IQueryable) sebe sama jako konstruované obecné metody. Pak předá MethodCallExpressionCreateQuery(Expression) metodě parametru IQueryProvider reprezentované Provider vlastností source
.
Chování dotazu, ke kterému dochází v důsledku spuštění stromu výrazu, který představuje volání Cast<TResult>(IQueryable) , závisí na implementaci typu parametru source
. Očekávané chování je, že převede hodnoty v source
na typ TResult
.