この記事は機械翻訳されたものです。 記事の文章にポインターを重ねると、原文のテキストが表示されます。 詳細情報
訳文
原文
情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

Enumerable.OfType<TResult> メソッド

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

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

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

型パラメーター

TResult

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

パラメーター

source
型 : System.Collections.IEnumerable
フィルター処理する要素を含む IEnumerable

戻り値

型 : System.Collections.Generic.IEnumerable<TResult>
TResult 型の入力シーケンスの要素を格納する IEnumerable<T>

使用上の注意

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

例外条件
ArgumentNullException

sourcenull なので、

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

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

このメソッドは、ArrayList などのパラメーター化されていない型を持つコレクションに適用できる、数少ない標準クエリ演算子のメソッドの 1 つです。 これは、OfType<TResult> によって IEnumerable 型が拡張されるためです。 OfType<TResult> は、パラメーター化された IEnumerable<T> 型に基づくコレクションだけでなく、パラメーター化されない IEnumerable 型に基づくコレクションにも適用できます。

IEnumerable を実装するコレクションに OfType<TResult> を適用することにより、標準クエリ演算子を使用してコレクションを照会できるようになります。 たとえば、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



.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 システム要件」を参照してください。

コミュニティの追加

表示:
© 2015 Microsoft