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

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

 

公開日: 2016年10月

条件を満たす、シーケンスの最初の要素を返します。このような要素が見つからない場合は既定値を返します。

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

public static TSource FirstOrDefault<TSource>(
	this IEnumerable<TSource> source,
	Func<TSource, bool> predicate
)

パラメーター

source
Type: System.Collections.Generic.IEnumerable<TSource>

IEnumerable<T> から要素を返します。

predicate
Type: System.Func<TSource, Boolean>

各要素が条件を満たしているかどうかをテストする関数。

戻り値

Type: TSource

default(TSource) 場合 source が空または要素がで指定されたテストに合格しないかどうかは predicate、それ以外の最初の要素 source で指定されたテストに合格した predicateします。

型パラメーター

TSource

要素の型 sourceします。

Exception Condition
ArgumentNullException

source または predicatenull です。

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

次のコード例では、使用して FirstOrDefault<TSource>(IEnumerable<TSource>, Func<TSource, Boolean>) 述語に渡すことです。 メソッドの 2 番目の呼び出しで要素が存在しない、条件を満たす、配列にします。

string[] names = { "Hartono, Tommy", "Adams, Terry", 
                     "Andersen, Henriette Thaulow", 
                     "Hedlund, Magnus", "Ito, Shu" };

string firstLongName = names.FirstOrDefault(name => name.Length > 20);

Console.WriteLine("The first long name is '{0}'.", firstLongName);

string firstVeryLongName = names.FirstOrDefault(name => name.Length > 30);

Console.WriteLine(
    "There is {0} name longer than 30 characters.",
    string.IsNullOrEmpty(firstVeryLongName) ? "not a" : "a");

/*
 This code produces the following output:

 The first long name is 'Andersen, Henriette Thaulow'.
 There is not a name longer than 30 characters.
*/

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