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

是否有返回索引的LINQ函数?

  •  2
  • mpen  · 技术社区  · 14 年前

    基本上,相当于:

    public static IEnumerable<KeyValuePair<int, T>> Enumerate<T>(this IEnumerable<T> enumerable)
    {
        int i = 0;
        return enumerable.Select(e => new KeyValuePair<int, T>(i++, e));
    }
    

    python有一个,但我在c中找不到。如果没有,没有什么大不了的,我只是写了它,但是如果它已经存在,我宁愿坚持标准。比有阿克沃德 int i=0 以上声明 foreach .

    1 回复  |  直到 14 年前
        1
  •  6
  •   Marc Gravell    14 年前
    return enumerable.Select((e, i) => new KeyValuePair<int, T>(i, e));
    

    还要注意,您的方法使用 i++ 因为捕获的变量不安全;有人可以调用 Count() 首先,例如-使用 Parallel .