Architect's Log

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

IEnumerable.DefaultIfEmptyメソッド

Enumerable.DefaultIfEmpty(TSource) メソッド (IEnumerable(TSource), TSource) (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 };
            // 1〜5の合計
            Console.WriteLine(numbers.DefaultIfEmpty().Sum());

            int[] emptyNumbers = new int[] { };
            // intのデフォルト値0
            Console.WriteLine(emptyNumbers.DefaultIfEmpty().Sum());

            // 指定されたデフォルト値-1
            Console.WriteLine(emptyNumbers.DefaultIfEmpty(-1).Sum());

            Console.ReadKey();
        }
    }
}

実行結果