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

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

 

公開日: 2016年11月

指定された条件を満たす、シーケンスの唯一の要素を返し、そのような要素が複数存在する場合は例外をスローします。

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

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

パラメーター

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

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

predicate
Type: System.Func<TSource, Boolean>

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

戻り値

Type: TSource

条件を満たす、入力シーケンスの 1 つの要素。

型パラメーター

TSource

要素の型 sourceします。

Exception Condition
ArgumentNullException

source または predicatenull です。

InvalidOperationException

条件を満たす要素がない predicateします。

または

1 つ以上の要素の条件を満たす predicateします。

または

ソース シーケンスが空です。

Single<TSource>(IEnumerable<TSource>, Func<TSource, Boolean>) メソッドは、入力シーケンスに一致する要素が含まれていない場合に例外をスローします。 返すには null 一致する要素が見つからないときに使用して SingleOrDefault<TSource>します。

次のコード例では、使用して Single<TSource>(IEnumerable<TSource>, Func<TSource, Boolean>) 条件を満たす、配列の唯一の要素を選択します。

string[] fruits = { "apple", "banana", "mango", 
                      "orange", "passionfruit", "grape" };

string fruit1 = fruits.Single(fruit => fruit.Length > 10);

Console.WriteLine(fruit1);

/*
 This code produces the following output:

 passionfruit
*/

次のコード例に示しますを Single<TSource>(IEnumerable<TSource>, Func<TSource, Boolean>) 、シーケンスに条件を満たす要素が 1 つだけが含まれていない場合は例外をスローします。

string fruit2 = null;

try
{
    fruit2 = fruits.Single(fruit => fruit.Length > 15);
}
catch (System.InvalidOperationException)
{
    Console.WriteLine(@"The collection does not contain exactly 
                    one element whose length is greater than 15.");
}

Console.WriteLine(fruit2);

// This code produces the following output:
//
// The collection does not contain exactly  
// one element whose length is greater than 15.

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