Linq ParallelQuery.ForAll和IEnumerable.ForEach

Linq ParallelQuery.ForAll和IEnumerable.ForEach,linq,naming-conventions,Linq,Naming Conventions,为什么这两个语义相同的方法有不同的名称(对于All和Each) ForEach方法是而非一种由IEnumerable定义的方法,它是列表的实例方法 这几乎就是解释ForEach是已知的ForEach循环的对应项,以下两种循环之间没有区别: foreach (var item in list) { ... } 及 另一方面,ForAll来自ParallelEnumerable,我认为他们这样命名它,因为他们不想让你认为它只是一个foreach循环,事实并非如此,因为这些动作是并行执行的。也许是为

为什么这两个语义相同的方法有不同的名称(对于
All
Each

ForEach方法是而非一种由
IEnumerable
定义的方法,它是
列表的实例方法

这几乎就是解释
ForEach
是已知的
ForEach
循环的对应项,以下两种循环之间没有区别:

foreach (var item in list) { ... }


另一方面,
ForAll
来自
ParallelEnumerable
,我认为他们这样命名它,因为他们不想让你认为它只是一个
foreach
循环,事实并非如此,因为这些动作是并行执行的。

也许是为了更容易区分它们?不确定我是否得到了你答案的最后一部分。你的意思是说,
ForEach
names意味着a项将按顺序处理,而a
ForAll
则不能保证这一点吗?是的,这取决于所处理对象中的数据,索引5中的项目可以在索引4中的项目之前使用。这不仅不能保证执行/完成的顺序,而且整个要点是并行执行。顺序可能是相当任意的,在使用它时,您应该假设同样多的顺序。
list.ForEach(...);