Queryable.Cast<TResult>(IQueryable) Método

Definição

Converte os elementos de um IQueryable para o tipo especificado.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)

Parâmetros de tipo

TResult

O tipo para o qual os elementos de source deverão ser convertidos.The type to convert the elements of source to.

Parâmetros

source
IQueryable

O IQueryable que contém os elementos a serem convertidos.The IQueryable that contains the elements to be converted.

Retornos

IQueryable<TResult>

Um IQueryable<T> que contém cada elemento da sequência de origem convertido para o tipo especificado.An IQueryable<T> that contains each element of the source sequence converted to the specified type.

Exceções

source é null.source is null.

Um elemento na sequência não pode ser convertido para o tipo TResult.An element in the sequence cannot be cast to type TResult.

Exemplos

O exemplo de código a seguir demonstra como usar Cast<TResult>(IQueryable) para converter objetos em uma sequência para tipo String.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

Comentários

O método Cast<TResult>(IQueryable) gera um MethodCallExpression que representa a chamada Cast<TResult>(IQueryable) si mesmo como um método genérico construído.The Cast<TResult>(IQueryable) method generates a MethodCallExpression that represents calling Cast<TResult>(IQueryable) itself as a constructed generic method. Em seguida, ele passa o MethodCallExpression para o método CreateQuery(Expression) do IQueryProvider representado pela propriedade Provider do parâmetro source.It then passes the MethodCallExpression to the CreateQuery(Expression) method of the IQueryProvider represented by the Provider property of the source parameter.

O comportamento da consulta que ocorre como resultado da execução de uma árvore de expressão que representa a chamada de Cast<TResult>(IQueryable) depende da implementação do tipo do parâmetro source.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. O comportamento esperado é que ele converte os valores em source no tipo TResult.The expected behavior is that it converts the values in source to type TResult.

Aplica-se a