有什么特别的理由有单独的方法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
,它们是对上述内容的补充。
编辑:为了澄清,我知道变体之间的功能差异,我只是询问有关方法命名的设计决策。