我想写:
IEnumerable<Car> cars;
cars.Find(car => car.Color == "Blue")
我可以使用扩展方法来完成此任务吗?以下失败是因为它递归地调用自身而不是调用 IList.Find()。
public static T Find<T>(this IEnumerable<T> list, Predicate<PermitSummary> match)
{
return list.ToList().Find(match);
}
Thanks!
这个方法已经存在了。它被称为 FirstOrDefault
cars.FirstOrDefault(car => car.Color == "Blue");
如果你自己实现它会看起来有点像这样
public static T Find<T>(this IEnumerable<T> enumerable, Func<T,bool> predicate) {
foreach ( var current in enumerable ) {
if ( predicate(current) ) {
return current;
}
}
return default(T);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)