コガネブログ

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

【C#】配列やリストのすべての要素に対して指定された関数を適用する拡張メソッド

using System;
using System.Collections.Generic;

public static class IEnumerableExtensions
{
    /// <summary>
    /// リストのすべての要素に対して指定された関数を適用します
    /// </summary>
    public static void Apply<T>( this IList<T> list, Func<T, int, T> func )
    {
        for ( int i = 0; i < list.Count; i++ )
        {
            list[ i ] = func( list[ i ], i );
        }
    }
    
    /// <summary>
    /// リストのすべての要素に対して指定された関数を適用します
    /// </summary>
    public static void Apply<T>( this IList<T> list, Func<T, T> func )
    {
        for ( int i = 0; i < list.Count; i++ )
        {
            list[ i ] = func( list[ i ] );
        }
    }
}