QueueExtensions.cs 536 B

12345678910111213141516171819202122
  1. using System.Collections.Generic;
  2. using System.Linq;
  3. namespace InABox.Core
  4. {
  5. public static class QueueExtensions
  6. {
  7. public static IEnumerable<T> Dequeue<T>(this Queue<T> queue, int chunkSize)
  8. {
  9. for (int i = 0; i < chunkSize && queue.Count > 0; i++)
  10. {
  11. yield return queue.Dequeue();
  12. }
  13. }
  14. public static Queue<T> ToQueue<T>(this IEnumerable<T> enumerable)
  15. {
  16. return new Queue<T>(enumerable.ToArray());
  17. }
  18. }
  19. }