12345678910111213141516171819202122232425262728293031323334353637383940 |
- using System.Collections;
- using System.Collections.Generic;
- /// <summary>
- /// Extended version of List used to give stack functionality, but with a maximum capacity.
- /// </summary>
- public class CappedStack<T> : List<T>
- {
- public int maxValues;
- public CappedStack(int max)
- {
- maxValues = max;
- }
- /// <summary>
- /// Adds the object to the top of the stack. If stack is longer than maxValues,
- /// removes the oldest item.
- /// </summary>
- /// <param name="val">Object to go on top of the stack.</param>
- public void Push(T val)
- {
- Add(val);
- if (Count > maxValues)
- {
- RemoveAt(0);
- }
- }
- /// <summary>
- /// Returns the item on top of the stack and removes it.
- /// </summary>
- /// <returns>Top stack item. </returns>
- public T Pop()
- {
- T val = this[Count - 1];
- RemoveAt(Count - 1);
- return val;
- }
- }
|