代码之家  ›  专栏  ›  技术社区  ›  vico

确定返回可枚举.Range()中的类型

  •  -1
  • vico  · 技术社区  · 7 年前

    试图了解返回的数据类型 Enumerable.Range() 以下示例中的函数:

    var numbers = Enumerable.Range(0, 100000000);
    Console.WriteLine( numbers.GetType().FullName );
    

    IEnumerable<int> . 但根据我的理解,这只是一个接口,返回的对象类应该实现这个接口。那是什么东西?

    System.Linq.Enumerable+<RangeIterator>d__113
    

    我不知道我可以换哪种类型 var 在我的代码行中。我找不到 RangeIterator d__113 在这个输出中是什么意思?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Nkosi    7 年前

    来源 Enumerable.Range

    public static IEnumerable<int> Range(int start, int count) {
        long max = ((long)start) + count - 1;
        if (count < 0 || max > Int32.MaxValue) throw Error.ArgumentOutOfRange("count");
        return RangeIterator(start, count);
    }
    
    static IEnumerable<int> RangeIterator(int start, int count) {
        for (int i = 0; i < count; i++) yield return start + i;
    }
    

    我不知道我可以换哪种类型 var

    只用 IEnumerable<int>

    IEnumerable<int> numbers = Enumerable.Range(0, 100000000);
    
    推荐文章