public static List MakeList(IList<object> elements, List tail = null) { if (elements.Count == 0) return tail; return new List(elements[0], MakeList(elements.Skip(1).ToList(), tail)); }