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

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

 

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

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

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

パラメーター

source

最初の要素を返す IEnumerable<T>

戻り値

Type: TSource

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

型パラメーター

TSource

source の要素の型。

Exception Condition
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
*/

Universal Windows Platform
4.5 から利用可能
.NET Framework
3.5 から利用可能
Portable Class Library
サポート対象 : portable .NET platforms
Silverlight
2.0 から利用可能
Windows Phone Silverlight
7.0 から利用可能
Windows Phone
8.1 から利用可能
トップに戻る
表示: