如何获取IEnumerable中元素的索引?

我这样写:

public static class EnumerableExtensions

{

public static int IndexOf<T>(this IEnumerable<T> obj, T value)

{

return obj

.Select((a, i) => (a.Equals(value)) ? i : -1)

.Max();

}

public static int IndexOf<T>(this IEnumerable<T> obj, T value

, IEqualityComparer<T> comparer)

{

return obj

.Select((a, i) => (comparer.Equals(a, value)) ? i : -1)

.Max();

}

}

但是我不知道它是否已经存在了吗?

回答:

将内容发布为IEnumerable的全部目的是让您可以懒惰地遍历内容。因此,没有 真正

的指数的概念。对于IEnumerable,您实际上所做的事情并没有多大意义。如果需要支持按索引访问的内容,请将其放入实际的列表或集合中。

以上是 如何获取IEnumerable中元素的索引? 的全部内容, 来源链接: utcz.com/qa/424521.html

回到顶部