Empty 拡張メソッドで空のシーケンスを作成する
(2017/03/08 17:22:06 created.)
Empty 拡張メソッドで空のシーケンスを作成することができます。メソッドの戻り値として使用したり、Aggregate 拡張メソッドや Union 拡張メソッドの中間値として使用したりします。
Program.cs
namespace Tips_Linq
{
using System;
using System.Linq;
class Program
{
static void Main(string[] args)
{
var numbers = Enumerable.Empty<int>();
var isOk = !numbers.Any();
Console.WriteLine(isOk ? "空です。" : "空ではありません。");
Console.ReadKey();
}
}
}
例えば次のように Aggregate 拡張メソッドのシード値として使われます。
Program.cs
namespace Tips_Linq
{
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main(string[] args)
{
var numbers1 = new int[] { 1, 2, 3 };
var numbers2 = new int[] { 1, 2, 3, 4, 5 };
var numbers3 = new int[] { 4, 5 };
var numbersList = new List<int[]>() { numbers1, numbers2, numbers3 };
var list = numbersList.Aggregate(Enumerable.Empty<int>(), (current, next) => next.Count() > 2 ? current.Concat(next) : current);
foreach (var number in list)
{
Console.WriteLine(number);
}
Console.ReadKey();
}
}
}
Tweet