using System.Collections.Generic;
using System.Collections;
public static void Main(string[] args)
var enum1 = new MyEnumerable();
var enum2 = new MyEnumerable();
enum1.Union(enum2).Select(x => x + 1).ToList();
Console.WriteLine("All done!");
class MyEnumerable : IEnumerable<long>
public IEnumerator<long> GetEnumerator()
return new MyEnumerator();
IEnumerator IEnumerable.GetEnumerator()
class MyEnumerator : IEnumerator<long>
object IEnumerator.Current
Console.WriteLine("I got disposed");