IList <t> .FindIndex(Int32,Predicate <t>)</t> </t>

时间:2012-12-07 16:51:38

标签: c# .net-3.5

有一个List<T>.FindIndex(Int32, Predicate <T>)。这个方法正是我想要的IList<T>对象 我知道IList有一个方法IndexOf(T),但我需要谓词来定义比较算法。

是否有方法,扩展方法,LINQ或一些代码来查找IList<T>中项目的索引?

1 个答案:

答案 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;
}