[.NET クラスライブラリ Tips][LINQ] シーケンス内の唯一の要素を取得する(SingleOrDefaultメソッド)

スポンサーリンク

概要

SingleOrDefaultメソッドは、IEnumerable シーケンスから、指定された条件に一致する単一の要素を返します。このメソッドは、条件に一致する要素が1つだけ存在する場合に使用されます。存在しない場合は既定値(default)を返し、複数の要素が条件に一致する場合は例外をスローします。

公式サイト情報はコチラを参照してください。

構文

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

SingleOrDefaultメソッドの構文は、上記の通りです。IEnumerable sourceは、シーケンス自体を指定し、Func<TSource, bool> predicateは、条件式を指定します。返されるのは、指定された条件に一致するシーケンス内の単一の要素または既定値(default)です。条件に一致する要素が存在しない場合、既定値(default)が返されます。複数の要素が条件に一致する場合、例外がスローされます。

使用例

using System;
using System.Linq;
class Program
{
  static void Main(string[] args)
  {
    int[] numbers = { 1, 2, 3, 4, 5 };
    int even = numbers.SingleOrDefault(n => n % 2 == 0);
    int odd = numbers.SingleOrDefault(n => n % 2 != 0);
    Console.WriteLine($"even number: {even}"); // Output: even number: 2
    Console.WriteLine($"odd number: {odd}"); // Output: odd number: 0
    }
}

上記の例では、numbers配列から偶数と奇数を取得しています。even変数には、numbers配列内で最初に見つかった偶数の要素である2が格納され、odd変数には、numbers配列内で最初に見つかった奇数の要素である1が格納されます。また、奇数の要素が見つからなかった場合、SingleOrDefaultメソッドは既定値(default)の0を返します。

.NET クラス Tips 一覧

これまでに紹介した .NET Tips 一覧はこちら

Please follow and like us:

コメント

タイトルとURLをコピーしました