Freigeben über


Queryable.Cast<TResult>(IQueryable) Methode

Definition

Konvertiert die Elemente einer IQueryable 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);
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 von source konvertiert werden sollen.

Parameter

source
IQueryable

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

Gibt zurück

IQueryable<TResult>

Eine IQueryable<T>, die jedes in den angegebenen Typ konvertierte Element der Quellsequenz enthält.

Ausnahmen

source ist null.

Ein Element in der Sequenz kann nicht in den Typ TResult umgewandelt werden.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie sie verwenden Cast<TResult>(IQueryable) , um Objekte in einer Sequenz in den Typ Stringzu konvertieren.


// 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 an MethodCallExpression die CreateQuery(Expression) -Methode des übergeben, das IQueryProvider durch die Provider -Eigenschaft des source -Parameters dargestellt wird.

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

Gilt für: