有什么特别的理由有单独的方法Skip和SkipWhile,而不是简单地重载相同的方法?
我的意思是,而不是Skip(int), SkipWhile(Func<TSource,bool>), and SkipWhile(Func<TSource,int,bool>), 为什么没有Skip(int), Skip(Func<TSource,bool>), and Skip(Func<TSource,int,bool>)? 我确信这是有原因的,因为整个 LINQ 系统是由比我更有经验的人设计的,但这种推理并不明显。
想到的唯一可能性是类似于 SQL 的语法的解析器存在问题,但这已经区分了 and 之类的东西Select(Func<TSource,TResult>),Select(Func<TSource,int,TResult>)所以我怀疑这就是原因。
同样的问题适用于Take和TakeWhile,它们是对上述内容的补充。
编辑:为了澄清,我知道变体之间的功能差异,我只是询问有关方法命名的设计决策。