コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【C#】SelectMany( c => c ) の記述を簡略化する拡張メソッド

ソースコード

using System.Collections.Generic;
using System.Linq;

public static class IEnumerableExt
{
    public static IEnumerable<T> Flatten<T>
    (
        this IEnumerable<IEnumerable<T>> self
    )
    {
        return self.SelectMany( c => c );
    }
}

使用例

通常

foreach ( var n in list.SelectMany( c => c ) )
{
}

拡張メソッド

foreach ( var n in list.Flatten() )
{
}