エクスポート (0) 印刷
すべて展開
この記事は機械翻訳されたものです。 記事の文章にポインターを重ねると、原文のテキストが表示されます。 詳細情報
訳文
原文

Enumerable.FirstOrDefault<TSource> メソッド (IEnumerable<TSource>)

シーケンスの最初の要素を返します。シーケンスに要素が含まれていない場合は既定値を返します。

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

public static TSource FirstOrDefault<TSource>(
	this IEnumerable<TSource> source
)

型パラメーター

TSource

source の要素の型。

パラメーター

source
型 : System.Collections.Generic.IEnumerable<TSource>
最初の要素を返す IEnumerable<T>

戻り値

型 : TSource
source が空の場合は default(TSource)。それ以外の場合は source の最初の要素。

使用上の注意

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

例外条件
ArgumentNullException

sourcenull なので、

参照型および null 許容型の既定値は null です。

FirstOrDefault メソッドには、既定値を指定する方法がありません。 default (TSource) 以外の既定値を指定するには、「使用例」に示されているように DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource) メソッドを使用します。

FirstOrDefault<TSource>(IEnumerable<TSource>) を空の配列で使用する方法を次のコード例に示します。


            int[] numbers = { };
            int first = numbers.FirstOrDefault();
            Console.WriteLine(first);

            /*
             This code produces the following output:

             0
            */



コレクションに要素が含まれていない場合、default(TSource) の値が目的の既定値でないことがあります。 望ましくない既定値による結果を確認し、必要に応じてそれを変更するのではなく、DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource) メソッドを使用して、コレクションが空の場合に使用する既定値を指定できます。 次に、First<TSource>(IEnumerable<TSource>) を呼び出して、先頭の要素を取得します。 両方の方法を使用して、月を表す数値のコレクションが空の場合に 1 という既定値を取得するコード例を次に示します。 整数の既定値は 0 であり、これはどの月にも対応しないため、既定値は 1 として指定する必要があります。 クエリの実行が終了した後で、望ましくない既定値に対する最初の結果変数を確認します。 2 番目の結果変数は、DefaultIfEmpty<TSource>(IEnumerable<TSource>, TSource) を使用して既定値 1 を指定することによって得られます。


            List<int> months = new List<int> { };

            // Setting the default value to 1 after the query.
            int firstMonth1 = months.FirstOrDefault();
            if (firstMonth1 == 0)
            {
                firstMonth1 = 1;
            }
            Console.WriteLine("The value of the firstMonth1 variable is {0}", firstMonth1);

            // Setting the default value to 1 by using DefaultIfEmpty() in the query.
            int firstMonth2 = months.DefaultIfEmpty(1).First();
            Console.WriteLine("The value of the firstMonth2 variable is {0}", firstMonth2);

            /*
             This code produces the following output:

             The value of the firstMonth1 variable is 1
             The value of the firstMonth2 variable is 1
            */



.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