J'ai écrit ceci:
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();
}
}
Mais je ne sais pas si ça existe déjà, n'est-ce pas?
ToList()/FindIndex()
tour fonctionne le mieux
Max
approche est que a: elle continue de chercher, et b: elle renvoie le dernier index quand il y a des doublons (les gens s'attendent généralement au premier index)