Nov*_*ice 3 c# linq ienumerable enumerable
我对此问题非常困惑,无法理解.在Enumerable文档中,我读到了这个:
实现System.Collections.Generic.IEnumerable
还有一些像Select()return IEnumerable<TSource>这样的方法我们可以Where()在使用之后使用其他方法.例如:
names.Select(name => name).Where(name => name.Length > 3 );
Run Code Online (Sandbox Code Playgroud)
但Enumerable不从继承IEnumerable<T>和IEnumerable<T>不包含Select(),Where()以及等太...
我错了吗?
或存在任何理由?
Select(),Where()等是" 扩展方法 ".它们需要在"其他地方"定义,因为接口不能提供方法的实现.
您可以通过参数列表中的关键字"this"识别扩展方法.例如:
public static IEnumerable<TSource> Where<TSource>(
this IEnumerable<TSource> source,
Func<TSource, bool> predicate
)
Run Code Online (Sandbox Code Playgroud)
可以使用,就好像它是一个IEnumerable<TSource>带有一个参数的方法:Func<TSource, bool> predicate.