本文為機器翻譯文章。如需檢視英文版,請選取 [原文] 核取方塊。您也可以將滑鼠指標移到文字上,即可在快顯視窗顯示英文原文。
譯文
原文

Enumerable.Cast<TResult> 方法 (IEnumerable)

 

將轉換的項目 IEnumerable 指定的型別。

命名空間:   System.Linq
組件:  System.Core (於 System.Core.dll)

public static IEnumerable<TResult> Cast<TResult>(
	this IEnumerable source
)

參數

source
Type: System.Collections.IEnumerable

IEnumerable ,其中包含要轉換成輸入的項目 TResult

傳回值

Type: System.Collections.Generic.IEnumerable<TResult>

IEnumerable<T> ,其中包含指定的型別轉換的來源序列的每個項目。

類型參數

TResult

要轉換的項目型別 source 來。

Exception Condition
ArgumentNullException

sourcenull

InvalidCastException

序列中的項目無法轉換成型別 TResult

實作這個方法會使用延後的執行。 立即傳回值是儲存,才能執行此動作的所有資訊的物件。 這個方法所表示的查詢不會執行直到列舉物件可以藉由呼叫其 GetEnumerator 方法直接或使用 foreach 中 Visual C# 或 For Each 中 Visual Basic。

Cast<TResult>(IEnumerable) 方法可讓非泛型集合上所提供的必要型別資訊叫用的標準查詢運算子。 例如, ArrayList 不會實作 IEnumerable<T>, ,但藉由呼叫 Cast<TResult>(IEnumerable)ArrayList 物件時,標準查詢運算子則可用來查詢的序列。

如果項目無法轉換成型別 TResult, ,這個方法會擲回例外狀況。 若要取得可以轉換成輸入這些項目 TResult, ,使用 OfType<TResult> 方法,而不是 Cast<TResult>(IEnumerable)

在查詢運算式中,明確指定型別的的反覆運算變數會轉譯為的引動過程 Cast<TResult>(IEnumerable) 此範例顯示針對未明確指定型別的的範圍變數的語法。

from int i in objects

下列程式碼範例示範如何使用 Cast<TResult>(IEnumerable) 使用標準查詢運算子,以便 ArrayList

System.Collections.ArrayList fruits = new System.Collections.ArrayList();
fruits.Add("mango");
fruits.Add("apple");
fruits.Add("lemon");

IEnumerable<string> query =
    fruits.Cast<string>().OrderBy(fruit => fruit).Select(fruit => fruit);

// The following code, without the cast, doesn't compile.
//IEnumerable<string> query1 =
//    fruits.OrderBy(fruit => fruit).Select(fruit => fruit);

foreach (string fruit in query)
{
    Console.WriteLine(fruit);
}

// This code produces the following output: 
//
// apple 
// lemon
// mango

通用 Windows 平台
自 8 起供應
.NET Framework
自 3.5 起供應
可攜式類別庫
提供支援︰ 可攜式 .NET 平台
Silverlight
自 2.0 起供應
Windows Phone Silverlight
自 7.0 起供應
Windows Phone
自 8.1 起供應
回到頁首
顯示: