この記事は機械翻訳されています。英語版の記事を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

Enumerable.Cast<TResult> メソッド (IEnumerable)

 

公開日: 2016年10月

要素をキャスト、 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 以降で使用可能
トップに戻る
表示: