情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

Enumerable.Cast<TResult> メソッド

IEnumerable の要素を、指定した型にキャストします。

名前空間:  System.Linq
アセンブリ:  System.Core (System.Core.dll 内)

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

型パラメーター

TResult

source の要素のキャスト後の型。

パラメーター

source
型 : System.Collections.IEnumerable
TResult 型にキャストされる要素が格納されている IEnumerable

戻り値

型 : System.Collections.Generic.IEnumerable<TResult>
指定された型にキャストされたソース シーケンスの各要素を格納する IEnumerable<T>

使用上の注意

Visual Basic および Visual C# では、このメソッドを、IEnumerable 型のオブジェクトのインスタンス メソッドとして呼び出すことができます。インスタンス メソッド構文を使用してこのメソッドを呼び出す場合は、最初のパラメーターを省略します。詳細については、「拡張メソッド (Visual Basic)」または「拡張メソッド (C# プログラミング ガイド)」を参照してください。

例外条件
ArgumentNullException

sourcenull なので、

InvalidCastException

シーケンスの要素を TResult 型にキャストできません。

このメソッドは遅延実行を使用して実装されます。 アクションの実行に必要なすべての情報を格納するオブジェクトがすぐに返されます。 このメソッドによって表されるクエリは、オブジェクトの GetEnumerator メソッドを直接呼び出すか、foreach (Visual C# の場合) または For Each (Visual Basic の場合) を使用することによってオブジェクトが列挙されるまで実行されません。

Cast<TResult>(IEnumerable) メソッドを使用すると、必要な型情報を指定することで、非ジェネリック コレクションに対して標準クエリ演算子を呼び出すことができます。 たとえば、ArrayListIEnumerable<T> を実装しませんが、ArrayList オブジェクトに対して Cast<TResult>(IEnumerable) を呼び出すことで、標準クエリ演算子を使用してシーケンスを照会できます。

要素を TResult 型にキャストできない場合、このメソッドは例外をスローします。 TResult 型にキャストできる要素のみを取得するには、Cast<TResult>(IEnumerable) ではなく OfType<TResult> メソッドを使用します。

クエリ式では、明示的に型指定された繰り返し変数が、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


.NET Framework

サポート対象 : 4.5.2、4.5.1、4.5、4、3.5

.NET Framework Client Profile

サポート対象 : 4、3.5 SP1

汎用性のあるクラス ライブラリ

サポート対象 : 汎用性のあるクラス ライブラリ

Windows ストア アプリ用 .NET

サポート対象 : Windows 8

Windows Phone アプリ用 .NET

サポート対象 : Windows Phone 8、Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (サーバー コア ロールはサポート対象外), Windows Server 2008 R2 (SP1 以降でサーバー コア ロールをサポート。Itanium はサポート対象外)

.NET Framework では、各プラットフォームのすべてのバージョンはサポートしていません。サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。

コミュニティの追加

表示:
© 2014 Microsoft