今回は、Emptyメソッドについてです。
Emptyメソッドは、文字通り空のシーケンスを返します。
メソッドの戻り値に使ったり、UnionやAggregateを行う際の中間値として
よく利用したりします。
書式は以下の通り。
public static IEnumerable<TResult> Empty<TResult>()
以下、サンプルです。
#region LinqSamples-41 public class LinqSamples41 : IExecutable { public void Execute() { // // Emptyメソッドは、文字通り空のシーケンスを作成するメソッドである。 // Unionする際や、Aggregateする際の中間値として利用されることが多い。 // Console.WriteLine("COUNT = {0}", Enumerable.Empty<string>().Count()); // // 指定されたシーケンスから合計値が100を超えているシーケンスのみを抽出. // // Aggregateのseed値として、Enumerable.Emptyを使用している。 // var sequences = new List<IEnumerable<int>> { Enumerable.Range(1, 10), Enumerable.Range(30, 3), Enumerable.Range(50, 2), Enumerable.Range(200, 1) }; var query = sequences.Aggregate( Enumerable.Empty<int>(), (current, next) => next.Sum() > 100 ? current.Union(next) : current ); foreach (var item in query) { Console.WriteLine(item); } } } #endregion
実行結果は以下の通りです。
COUNT = 0 50 51
================================
過去の記事については、以下のページからご参照下さい。
- いろいろ備忘録日記まとめ