2、Func<TSource, int> selector这个参数。
尝试写一个Linq的First函数吧,命名为First2。Linq源代码里有很多异常情况处理,好多设计模式,可惜我不懂,只提取简单逻辑了。
namespace ConsoleApplication2
{
static class Extend
{
public static TSource First2<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate)
{
//.Net本身的源代码好多异常情况处理,好多设计模式,我也不懂,只提取逻辑
foreach (TSource item in source)
{
if (predicate(item))
{
return (item);
}
}
throw new Exception("不存在满足条件的第一个元素!");
}
}
class Program
{
static void Main(string[] args)
{
List<int> ListInt = new List<int>(){ 1, 2, 3, 4, 5 };
int k = ListInt.First2(m => m > 4); //输出5
Console.WriteLine(k);
Console.ReadKey();
}
}
}
以上所述是本文的全部内容,有问题的可以和小编联系,谢谢对易采站长站的支持!








