for WPF developers
Home Profile Tips 全記事一覧

DefaultIfEmpty 拡張メソッドで空シーケンスに対する既定値を取得する

(2017/03/07 20:39:36 created.)

DefaultIfEmpty 拡張メソッドは空シーケンスに対して既定値や指定した値を返します。

Program.cs
  1. namespace Tips_Linq
  2. {
  3.     using System;
  4.     using System.Linq;
  5.  
  6.     class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             var numbers = new int[] { };
  11.             foreach (var number in numbers)
  12.             {
  13.                 Console.WriteLine(number);
  14.             }
  15.  
  16.             Console.WriteLine("デフォルト値を取得します。");
  17.             var values = numbers.DefaultIfEmpty();
  18.             foreach (var value in values)
  19.             {
  20.                 Console.WriteLine(value);
  21.             }
  22.  
  23.             Console.WriteLine("指定したデフォルト値を取得します。");
  24.             values = numbers.DefaultIfEmpty(2);
  25.             foreach (var value in values)
  26.             {
  27.                 Console.WriteLine(value);
  28.             }
  29.  
  30.             Console.ReadKey();
  31.         }
  32.     }
  33. }


int 型の既定値は 0 のため、引数を指定しない DefaultIfEmpty 拡張メソッドを使うと要素数 1 で、その値が 0 であるシーケンスが返ってきます。既定値を指定すると、その値が指定された値になって返ってきます。