为什么在Linq中没有类似IndexOf(字符串值)的方法

本文关键字:字符串 方法 IndexOf Linq 为什么 | 更新日期: 2023-09-27 18:15:17

可能重复:
在IEnumerable<T>使用Linq

有一个字符串方法:int IndexOf(string value)
我没能在Linq中找到一个更通用的,应该是这样的:

static int IndexOf<T>(this List<T> source,List<T> value,Predicate<T> equality)

为什么微软没有为我们提供通用的字符串搜索功能?

为什么在Linq中没有类似IndexOf(字符串值)的方法

听起来像是指List<T>.FindIndex()

--编辑--

任何IEnumerable<T>的更通用的方法是:-

public static int FindIndex<T>(this IEnumerable<T> source, Predicate<T> equality)
{
    return source
        .Select((item, index) => new {Item = item, Index = index})
        .First(x => equality(x.Item)).Index;
}

这不是您问题的直接答案,但在某些情况下,您不需要找到索引,可以使用带有索引的函数。我想我的解释并没有让它变得更简单,但也许一个例子会让它更清楚。

list.Select( (item, index) => /* do something here based on the index of the item */);
list.Where( (item, index) => /* filter the list based on the index and the item */);