有没有什么特别的原因有不同的方法Skip和SkipWhile相同的方法,而不是简单地重载?
我的意思是,相反的Skip(int),SkipWhile(Func<TSource,bool>)以及SkipWhile(Func<TSource,int,bool>),为什么不能有Skip(int),Skip(Func<TSource,bool>)和Skip(Func<TSource,int,bool>)?我确信它有一些原因,因为整个LINQ系统是由比我更多经验的人设计的,但这种推理并不明显.
这是来心中唯一的可能性已经问题进行解析器的类似于SQL的语法,但已经事物之间的区别就像Select(Func<TSource,TResult>)和Select(Func<TSource,int,TResult>),所以我怀疑这就是原因.
同样的问题也适用于Take和TakeWhile,这是免费的上面.
编辑:为了澄清,我知道变体之间的功能差异,我只是询问关于方法命名的设计决策.