using System.Collections;
using System.Collections.Generic;
public static class Iterator
public static IEnumerable<object[]> Enumerate(params IEnumerable[] enumerables)
var list = new List<object>();
var enumerators = new List<IEnumerator>();
foreach(var enu in enumerables)
enumerators.Add(enu.GetEnumerator());
foreach(var enu in enumerators)
if(!enu.MoveNext()) { end = true; break; }
if(!end) yield return list.ToArray();
public static void Main()
var listA = new[] { 1, 2, 3 };
var listB = new[] { "a", "b", "c" };
var listC = new[] { 5f, 6f, 7f };
foreach(var n in Iterator.Enumerate(listA, listB, listC))
Console.Write(obj.ToString() + ", ");