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
 
