Tôi đã viết điều này:
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();
}
}
Nhưng tôi không biết nếu nó đã tồn tại, phải không?
ToList()/FindIndex()
thuật này hoạt động tốt nhất
Max
cách tiếp cận là: nó tiếp tục tìm kiếm và b: nó trả về chỉ mục cuối cùng khi có các bản sao (mọi người thường mong đợi chỉ số đầu tiên)