所以我知道这Find()只是一种List<T>方法,而First()对任何方法都是一种扩展IEnumerable<T>.我也知道,First()如果没有传递参数,将返回第一个元素,而Find()抛出异常.最后,我知道First()如果找不到元素会抛出异常,而Find()返回类型的默认值.
我希望能够解决我实际要问的问题.这是一个计算机科学问题,并在计算层面处理这些方法.我已经明白,IEnumerable<T>扩展并不总是像人们期望的那样运行.所以这是Q,我的意思是从"接近金属"的角度来看:Find()和之间的区别是什么First()?
这里有一些代码可以为这个问题提供基本的假设.
var l = new List<int> { 1, 2, 3, 4, 5 };
var x = l.First(i => i == 3);
var y = l.Find(i => i == 3);
Run Code Online (Sandbox Code Playgroud)
在上面的代码中如何First()和Find()发现它们的值之间是否有任何实际的计算差异?
注:让我们忽略的东西AsParallel()和AsQueryable()现在.