基本上,相当于:
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));
}
Run Code Online (Sandbox Code Playgroud)
Python有一个,但我在C#中找不到它.如果没有,没有大问题,我只是写了它,但如果它已经存在,我宁愿坚持标准.节拍int i=0上面各有一个尴尬的声明foreach.
return enumerable.Select((e, i) => new KeyValuePair<int, T>(i, e));
Run Code Online (Sandbox Code Playgroud)
另请注意,使用i++捕获变量的方法并不安全; 有人可以Count()先打电话,例如使用Parallel.