对于Where方法的这种重载,我无法理解MSDN文档的任何意义,该重载接受一个具有两个参数的谓词,其中int据说代表源元素的索引,无论这意味着什么(我认为枚举是一个序列,您无法看到比下一个项目更远的内容,更不用说对其进行任何索引了)。
有人可以解释一下如何使用这个重载,特别是 Func 中的 int 的用途以及它的使用方式吗?
The int
参数表示当前项目的索引当前迭代。每次调用其中一个 LINQ 扩展方法时,理论上不能保证以相同的顺序返回项目,但您知道它们都会返回一次,因此可以分配索引。 (好吧,如果您知道查询对象是List<T>
或类似的,但不是一般情况。)
Example:
var result1 = myEnumerable.Where((item, index) => index < 4);
var result2 = myEnumerable.Take(4);
// result1 and result2 are equivalent.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)