コガネブログ

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

【C#】配列やリストの列数が指定した数になるまで値を追加する関数

ソースコード

private static IEnumerable<T> FillToColumnCount<T>
(
    IEnumerable<T> self,
    int            columnCount,
    T              defaultValue = default
)
{
    var i = 0;

    foreach ( var x in self )
    {
        yield return x;
        i = ( i + 1 ) % columnCount;
    }

    if ( i == 0 ) yield break;

    for ( ; i < columnCount; i++ )
    {
        yield return defaultValue;
    }
}