有一个List<T>.FindIndex(Int32, Predicate <T>)
。这个方法正是我想要的IList<T>
对象
我知道IList
有一个方法IndexOf(T)
,但我需要谓词来定义比较算法。
是否有方法,扩展方法,LINQ或一些代码来查找IList<T>
中项目的索引?
答案 0 :(得分:17)
你可以真的轻松编写自己的扩展方法:
public static int FindIndex<T>(this IList<T> source, int startIndex,
Predicate<T> match)
{
// TODO: Validation
for (int i = startIndex; i < source.Count; i++)
{
if (match(source[i]))
{
return i;
}
}
return -1;
}