Architect's Log

I'm a Cloud Architect. I'm highly motivated to reduce toils with driving DevOps.

IEnumerable.Singleメソッド

Enumerable.Single(TSource) メソッド (IEnumerable(TSource), Func(TSource, Boolean)) (System.Linq)
指定された条件を満たす、シーケンスの唯一の要素を返します。そのような要素が複数存在する場合は、例外をスローします。

ソースコード

using System;
using System.Linq;

namespace LinqSample {
    class Program {
        static void Main(string[] args) {
            int[] numbers = new int[] { 1, 2, 3, 4, 5 };
            // 該当する要素0
            try {
                int number = numbers.Single(n => 5 < n);
            } catch (Exception) {
                Console.WriteLine("Error");
            }

            // 1つの要素に該当する。
            {
                int number = numbers.Single(n => 4 < n);
                Console.WriteLine("Success");
            }

            // 複数の要素に該当する。
            try {
                int number = numbers.Single(n => 3 < n);
            } catch (Exception) {
                Console.WriteLine("Error");
            }

            Console.ReadKey();
        }
    }
}

実行結果