Queryable.Cast<TResult>(IQueryable) Metod

Definition

Konverterar elementen i en IQueryable till den angivna typen.

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)

Typparametrar

TResult

Den typ som elementen i konverteras source till.

Parametrar

source
IQueryable

Som IQueryable innehåller de element som ska konverteras.

Returer

IQueryable<TResult>

En IQueryable<T> som innehåller varje element i källsekvensen som konverterats till den angivna typen.

Undantag

source är null.

Ett element i sekvensen kan inte gjutas för att skriva TResult.

Exempel

Följande kodexempel visar hur du använder Cast<TResult>(IQueryable) för att konvertera objekt i en sekvens för att skriva 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

Kommentarer

Metoden Cast<TResult>(IQueryable) genererar en MethodCallExpression som representerar att anropa Cast<TResult>(IQueryable) sig själv som en konstruerad generisk metod. Den skickar sedan till CreateQuery(Expression) metoden för den IQueryProvider som representeras av Provider egenskapen för parameternsource.MethodCallExpression

Frågebeteendet som uppstår till följd av att ett uttrycksträd som representerar anrop Cast<TResult>(IQueryable) körs beror på implementeringen av source parametertypen. Det förväntade beteendet är att det konverterar värdena i source för att skriva TResult.

Gäller för