Queryable.Cast(IQueryable) Queryable.Cast(IQueryable) Queryable.Cast(IQueryable) Queryable.Cast(IQueryable) Method

Definition

Konvertiert die Elemente einer IQueryable in den angegebenen Typ.Converts the elements of an IQueryable to the specified type.

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.The type to convert the elements of source to.

Parameter

source
IQueryable IQueryable IQueryable IQueryable

Das IQueryable, das die zu konvertierenden Elemente enthält.The IQueryable that contains the elements to be converted.

Gibt zurück

IQueryable<TResult>

Eine IQueryable<T>, die jedes in den angegebenen Typ konvertierte Element der Quellsequenz enthält.An IQueryable<T> that contains each element of the source sequence converted to the specified type.

Ausnahmen

Ein Element in der Sequenz kann nicht in den Typ TResult umgewandelt werden.An element in the sequence cannot be cast to type TResult.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie Cast<TResult>(IQueryable) verwendet wird, um-Objekte in einer StringSequenz in den-Typ zu konvertieren.The following code example demonstrates how to use Cast<TResult>(IQueryable) to convert objects in a sequence to type 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

Hinweise

Die Cast<TResult>(IQueryable) -Methode generiert MethodCallExpression einen, der Cast<TResult>(IQueryable) den Aufruf von sich selbst als konstruierte generische Methode darstellt.The Cast<TResult>(IQueryable) method generates a MethodCallExpression that represents calling Cast<TResult>(IQueryable) itself as a constructed generic method. Anschließend MethodCallExpression übergibt sie an die IQueryProvider CreateQuery(Expression) -Methode des, das durch die Provider -Eigenschaft des source -Parameters dargestellt wird.It then passes the MethodCallExpression to the CreateQuery(Expression) method of the IQueryProvider represented by the Provider property of the source parameter.

Das Abfrage Verhalten, das auftritt, wenn eine Ausdrucks Baumstruktur ausgeführt wird, die Cast<TResult>(IQueryable) den Aufruf von darstellt, hängt von der Implementierung source des Typs des Parameters ab.The query behavior that occurs as a result of executing an expression tree that represents calling Cast<TResult>(IQueryable) depends on the implementation of the type of the source parameter. Das erwartete Verhalten ist, dass die Werte in in source den- TResultTyp konvertiert werden.The expected behavior is that it converts the values in source to type TResult.

Gilt für: