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;
            }
        }