Quick follow up to my earlier post. Fixing this issue in C# is even easier because of the existence of iterators.
public static IEnumerable<object> Shim(System.Collections.IEnumerable enumerable) { foreach (var cur in enumerable) { yield return cur; } }