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

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

 

公開日: 2016年10月

要素をフィルター処理、 IEnumerable 、指定した型に基づいています。

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

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

パラメーター

source
Type: System.Collections.IEnumerable

IEnumerable フィルターを適用する要素を格納します。

戻り値

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

IEnumerable<T> 型の入力シーケンスから要素を含む TResultします。

型パラメーター

TResult

シーケンスの要素をフィルター処理する型。

Exception Condition
ArgumentNullException

sourcenull です。

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

OfType<TResult>(IEnumerable) メソッドの要素のみを返します source 型にキャストできる TResultです。 要素は、型にキャストできない場合、代わりに例外を発生させる TResult, を使用して Cast<TResult>(IEnumerable)します。

このメソッドは、非パラメーター化の種類をようになっているコレクションに適用できるいくつかの標準クエリ演算子メソッドのいずれか、 ArrayListです。 これは、ため OfType<TResult> 、型を拡張 IEnumerableします。 OfType<TResult> 使用するコレクションにのみ適用できません、パラメーター化された [ IEnumerable<T> 型ではなく、非パラメーター化に基づくコレクション IEnumerable も入力します。

適用することで OfType<TResult> を実装するコレクションに IEnumerable, 、標準クエリ演算子を使用して、コレクションを照会することができます。 などの型引数を指定する ObjectOfType<TResult> 型のオブジェクトを返すよう IEnumerable<Object> C# の場合または IEnumerable(Of Object) で Visual Basic, 、標準クエリ演算子を適用できます。

次のコード例では、使用して OfType<TResult> の要素をフィルター処理する、 IEnumerableです。

System.Collections.ArrayList fruits = new System.Collections.ArrayList(4);
fruits.Add("Mango");
fruits.Add("Orange");
fruits.Add("Apple");
fruits.Add(3.0);
fruits.Add("Banana");

// Apply OfType() to the ArrayList.
IEnumerable<string> query1 = fruits.OfType<string>();

Console.WriteLine("Elements of type 'string' are:");
foreach (string fruit in query1)
{
    Console.WriteLine(fruit);
}

// The following query shows that the standard query operators such as 
// Where() can be applied to the ArrayList type after calling OfType().
IEnumerable<string> query2 =
    fruits.OfType<string>().Where(fruit => fruit.ToLower().Contains("n"));

Console.WriteLine("\nThe following strings contain 'n':");
foreach (string fruit in query2)
{
    Console.WriteLine(fruit);
}

// This code produces the following output:
//
// Elements of type 'string' are:
// Mango
// Orange
// Apple
// Banana
//
// The following strings contain 'n':
// Mango
// Orange
// Banana

ユニバーサル Windows プラットフォーム
8 以降で使用可能
.NET Framework
3.5 以降で使用可能
ポータブル クラス ライブラリ
サポート対象: 移植可能 .NET プラットフォーム
Silverlight
2.0 以降で使用可能
Windows Phone Silverlight
7.0 以降で使用可能
Windows Phone
8.1 以降で使用可能
トップに戻る
表示: