Queryable.Cast<TResult>(IQueryable) 方法

定義

IQueryable 的項目轉換為指定的型別。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)

類型參數

TResult

要將 source 之項目轉換成的型別。The type to convert the elements of source to.

參數

source
IQueryable

包含要轉換之項目的 IQueryableThe IQueryable that contains the elements to be converted.

傳回

IQueryable<TResult>

IQueryable<T>,包含已轉換成指定之型別的每個來源序列項目。An IQueryable<T> that contains each element of the source sequence converted to the specified type.

例外狀況

sourcenullsource is null.

無法將序列中的項目轉換為型別 TResultAn element in the sequence cannot be cast to type TResult.

範例

下列程式碼範例示範如何使用將 Cast<TResult>(IQueryable) 序列中的物件轉換為類型 StringThe 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

備註

Cast<TResult>(IQueryable)方法 MethodCallExpression 會產生,代表呼叫 Cast<TResult>(IQueryable) 本身做為已建立的泛型方法。The Cast<TResult>(IQueryable) method generates a MethodCallExpression that represents calling Cast<TResult>(IQueryable) itself as a constructed generic method. 然後,它會將傳遞 MethodCallExpression 給以 CreateQuery(Expression) 參數的屬性所表示的方法 IQueryProvider Provider sourceIt then passes the MethodCallExpression to the CreateQuery(Expression) method of the IQueryProvider represented by the Provider property of the source parameter.

執行表示呼叫的運算式樹狀架構所產生的查詢行為, Cast<TResult>(IQueryable) 取決於參數類型的實作為 sourceThe 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. 預期的行為是將中的值轉換 source 為類型 TResultThe expected behavior is that it converts the values in source to type TResult.

適用於