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项将按顺序处理,而aForAll
则不能保证这一点吗?是的,这取决于所处理对象中的数据,索引5中的项目可以在索引4中的项目之前使用。这不仅不能保证执行/完成的顺序,而且整个要点是并行执行。顺序可能是相当任意的,在使用它时,您应该假设同样多的顺序。
list.ForEach(...);