【LINQ】指定の条件に一致しない場合、空の要素を生成するには(Empty生成演算子)

// データ
int[] array1 = { 50, 60, 70 };
int[] array2 = { 1, 2, 3 };
int[] array3 = { 5, 10, 15 };

// IEnumerableインターフェースを実装したリストに変換
var lists = new List<IEnumerable<int>> 
                { 
                    array1.AsEnumerable(), 
                    array2.AsEnumerable(), 
                    array3.AsEnumerable()
                };

// 各リスト毎に平均値が10より小さい場合は、空の要素を生成
var query = lists.Aggregate(Enumerable.Empty<int>(),
            (current, next) => next.Average() >= 10
                ? current.Union(next) : current);

// 結果 ⇒ 50, 60, 70, 5, 10, 15

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中