DefaultIfEmpty 拡張メソッドで空シーケンスに対する既定値を取得する
(2017/03/07 20:39:36 created.)
DefaultIfEmpty 拡張メソッドは空シーケンスに対して既定値や指定した値を返します。
Program.cs
namespace Tips_Linq
{
using System;
using System.Linq;
class Program
{
static void Main(string[] args)
{
var numbers = new int[] { };
foreach (var number in numbers)
{
Console.WriteLine(number);
}
Console.WriteLine("デフォルト値を取得します。");
var values = numbers.DefaultIfEmpty();
foreach (var value in values)
{
Console.WriteLine(value);
}
Console.WriteLine("指定したデフォルト値を取得します。");
values = numbers.DefaultIfEmpty(2);
foreach (var value in values)
{
Console.WriteLine(value);
}
Console.ReadKey();
}
}
}
int 型の既定値は 0 のため、引数を指定しない DefaultIfEmpty 拡張メソッドを使うと要素数 1 で、その値が 0 であるシーケンスが返ってきます。既定値を指定すると、その値が指定された値になって返ってきます。
Tweet