using System.Linq; using System.Collections; using System.Collections.Generic; using System; class c { public static void Main() { var l = MakeList(MakeList(MakeList(MakeList(MakeList(MakeList(MakeList(MakeList(MakeList(MakeList( MakeList(MakeList(MakeList(MakeList(MakeList(MakeList(MakeList(MakeList(MakeList(MakeList( MakeList(MakeList(MakeList(MakeList(MakeList(MakeList(MakeList(MakeList(MakeList(MakeList( MakeList(MakeList(MakeList(MakeList(MakeList(MakeList(MakeList(MakeList(MakeList(MakeList( MakeList(MakeList(MakeList(MakeList(MakeList(MakeList(MakeList(MakeList(MakeList(MakeList( MakeList(MakeList(MakeList(MakeList(MakeList(MakeList(MakeList(MakeList(MakeList(MakeList( MakeList(MakeList(MakeList(MakeList(MakeList(MakeList(MakeList(MakeList(MakeList(MakeList( MakeList(MakeList(MakeList(MakeList(MakeList(MakeList(MakeList(MakeList(MakeList(MakeList( MakeList(MakeList(MakeList(MakeList(MakeList(MakeList(MakeList(MakeList(MakeList(MakeList( MakeList(MakeList(MakeList(MakeList(MakeList(MakeList(MakeList(MakeList(MakeList(MakeList( MakeList((object)"", 1) )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))); Console.WriteLine(l.GetType()); } static IEnumerable MakeList(Item value, int count) { for (int i = 0; i < count; ++i) yield return value; } static IEnumerable MakeList(Item value) where Item:IEnumerable { foreach(object o in value) yield return value; } }