Freigeben über


Queryable.Cast<TResult>(IQueryable) Methode

Definition

Konvertiert die Elemente eines IQueryable Typs in den angegebenen 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)

Typparameter

TResult

Der Typ, in den die Elemente konvertiert source werden sollen.

Parameter

source
IQueryable

Das IQueryable Element, das die zu konvertierenden Elemente enthält.

Gibt zurück

IQueryable<TResult>

Ein IQueryable<T> Element der Quellsequenz, die in den angegebenen Typ konvertiert wird.

Attribute

Ausnahmen

source ist null.

Ein Element in der Sequenz kann nicht in die Eingabe TResultumgestellt werden.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie Cast<TResult>(IQueryable) Objekte in einer Sequenz in den Typ Stringkonvertiert werden.


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

Hinweise

Die Cast<TResult>(IQueryable) Methode generiert eine MethodCallExpression , die den Aufruf Cast<TResult>(IQueryable) selbst als konstruierte generische Methode darstellt. Anschließend wird die MethodCallExpression Methode der CreateQuery(Expression)IQueryProvider durch die Provider Eigenschaft des source Parameters dargestellten Methode übergeben.

Das Abfrageverhalten, das als Ergebnis der Ausführung einer Ausdrucksstruktur auftritt, die aufruft Cast<TResult>(IQueryable) , hängt von der Implementierung des Typs des source Parameters ab. Das erwartete Verhalten besteht darin, dass die Werte in source den Typ TResultkonvertiert werden.

Gilt für: