CGC_Codes

moving queue

Jun 7th, 2017
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.10 KB | None | 0 0
  1. using System.Collections;
  2. using System.Collections.Generic;
  3.  
  4. namespace QuantSys.DataStructures
  5. {
  6.     public class MovingQueue<T> : IEnumerable<T>
  7.     {
  8.         public int Count {get { return _queueData.Count; }}
  9.         public int Capacity {get { return _capacity; }}
  10.         public Queue<T> Data { get { return _queueData; } }
  11.  
  12.  
  13.         private Queue<T> _queueData;
  14.         private readonly int _capacity;
  15.  
  16.         public MovingQueue(int capacity)
  17.         {
  18.             _queueData = new Queue<T>(capacity);
  19.             _capacity = capacity;
  20.         }
  21.  
  22.         public void Enqueue(T item)
  23.         {
  24.  
  25.             if (_queueData.Count >= _capacity)
  26.             {
  27.                 _queueData.Dequeue();
  28.             }
  29.  
  30.             _queueData.Enqueue(item);
  31.         }
  32.  
  33.         public T[] ToArray()
  34.         {
  35.             return _queueData.ToArray();
  36.         }
  37.  
  38.         public IEnumerator<T> GetEnumerator()
  39.         {
  40.             return _queueData.GetEnumerator();
  41.         }
  42.  
  43.         IEnumerator IEnumerable.GetEnumerator()
  44.         {
  45.             return GetEnumerator();
  46.         }
  47.     }
  48. }
Advertisement
Add Comment
Please, Sign In to add comment