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

定義

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 IQueryable IQueryable IQueryable

IQueryable ,其中包含要轉換的項目。The 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.

例外狀況

序列中的項目無法轉換為類型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. 它接著會傳遞MethodCallExpressionCreateQuery(Expression)方法IQueryProviderProvider屬性source參數。It then passes the MethodCallExpression to the CreateQuery(Expression) method of the IQueryProvider represented by the Provider property of the source parameter.

因執行運算式樹狀架構表示呼叫的查詢行為Cast<TResult>(IQueryable)之型別的實作而定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. 預期的行為是,它會將轉換中的值source輸入TResultThe expected behavior is that it converts the values in source to type TResult.

適用於