fork(2) download
  1. using System;
  2. using System.Linq;
  3. using System.Collections.Generic;
  4.  
  5. public static class Test
  6. {
  7. public static IEnumerable<T> Last<T>(this IEnumerable<T> source, int n)
  8. {
  9. using(var it = source.GetEnumerator())
  10. {
  11. var buffer = new Queue<T>();
  12.  
  13. while (buffer.Count < n && it.MoveNext())
  14. buffer.Enqueue(it.Current);
  15.  
  16. while (it.MoveNext())
  17. {
  18. buffer.Dequeue();
  19. buffer.Enqueue(it.Current);
  20. }
  21. return buffer;
  22. }
  23. }
  24.  
  25. public static void Main()
  26. {
  27. var seq = new[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
  28. foreach (var n in seq.Last(5))
  29. Console.Write(string.Format("{0} ", n));
  30. }
  31. }
Success #stdin #stdout 0.04s 34864KB
stdin
Standard input is empty
stdout
5 6 7 8 9