Enumerable.Range implementation

后端 未结 4 1646
失恋的感觉
失恋的感觉 2020-12-20 08:21

What is the precise implementation of Enumerable.Range in .Net; preferable .Net 4? Is it a yielded for-loop? A custom implementation (IEnumerable, IEnumerator) or?<

4条回答
  •  一生所求
    2020-12-20 08:49

    The accepted answer on this question should give you the answer:

    public static class Enumerable {
        public static IEnumerable Range(int start, int count) {
            var end = start + count;
            for(var current = start; current < end; ++current) {
                yield return current;
            }
        }
    }
    

    This isn't the exact code, as there is a lot of error checking etc. going on within the Range method, and internally, it calls other methods, however, the quoted code above is the "essence" of the Range routine.

    Examining the code in Reflector should provide you with far more information.

提交回复
热议问题