fork(1) download
  1. using System;
  2. using System.Linq;
  3. using System.Collections;
  4. using System.Collections.Generic;
  5.  
  6. public class Test {
  7. public static void Main() {
  8. var A = new VisibleIterator("A");
  9. var B = new VisibleIterator("B");
  10. var C = new VisibleIterator("C");
  11. var D = new VisibleIterator("D");
  12. var foo = (A.Union(B).Union(C).Union(D)).ToList();
  13. Console.WriteLine("---");
  14. var bar = (A.Union(B.Union(C.Union(D)))).ToList();
  15. Console.WriteLine("---");
  16. var baz = (D.Union(C.Union(B.Union(A)))).ToList();
  17. }
  18. }
  19.  
  20. class VisibleIterator : IEnumerable<string> {
  21. private readonly string name;
  22. public VisibleIterator(string name) {
  23. this.name = name;
  24. }
  25. public IEnumerator<string> GetEnumerator() {
  26. for (var i = 0 ; i != 4 ; i++) {
  27. var res = name+i;
  28. Console.WriteLine(res);
  29. yield return res;
  30. }
  31. }
  32. IEnumerator IEnumerable.GetEnumerator() {
  33. return GetEnumerator();
  34. }
  35. }
Success #stdin #stdout 0.03s 15664KB
stdin
Standard input is empty
stdout
A0
A1
A2
A3
B0
B1
B2
B3
C0
C1
C2
C3
D0
D1
D2
D3
---
A0
A1
A2
A3
B0
B1
B2
B3
C0
C1
C2
C3
D0
D1
D2
D3
---
D0
D1
D2
D3
C0
C1
C2
C3
B0
B1
B2
B3
A0
A1
A2
A3