나는 이것을 썼다 :
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();
}
}
그러나 이미 존재하는지 모르겠습니다.
ToList()/FindIndex()
트릭을 수행하는 가장
Max
접근 방식 의 문제점은 다음과 같습니다. a : 계속 찾고 있으며 b : 중복이있을 때 마지막 색인을 반환합니다 (사람들은 일반적으로 첫 번째 색인을 기대 함)