読者です 読者をやめる 読者になる 読者になる

コガネブログ

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

【C#】ListをQueueの様に扱うための拡張メソッド

public static class ListExtensions
{
    /// <summary>
    /// 先頭にあるオブジェクトを削除し、返します
    /// </summary>
    public static T Dequeue<T>( this IList<T> self )
    {
        var result = self[ 0 ];
        self.RemoveAt( 0 );
        return result;
    }

    /// <summary>
    /// 末尾にオブジェクトを追加します
    /// </summary>
    public static void Enqueue<T>( this IList<T> self, T item )
    {
        self.Add( item );
    }

    /// <summary>
    /// 先頭にあるオブジェクトを削除せずに返します
    /// </summary>
    public static T Peek<T>( this IList<T> self )
    {
        return self[ 0 ];
    }
}
var list = new List<int>{ 1, 2, 3, 4, 5 };
list.Dequeue();
list.Enqueue( 6 );
list.Peek();

類似記事