如何获取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