为什么在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)
为什么微软没有为我们提供通用的字符串搜索功能?
听起来像是指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 */);