这是一个场景:
//MyClass in a collection which makes MyObjects a list.
MyObjects = new ObservableCollection<MyClass>();
在这种情况下,如果MyClass
有一个称为Arm
的属性,例如,如何初始化MyObjects
的所有成员的Arm
属性,而不在Foreach
循环中迭代它们,例如:
foreach (var MyObject in MyObjects)
{
MyObject.Arm = "Manly";
}
我以为下面的代码是可能的,但没有
MyObjects.Select().Arm = "Manly";
LINQ特别没有"mutate all"方法,因为它试图实现某种功能。如果您绝对必须具有此功能,则可以定义自己的ForEach
扩展方法,该方法接受Action
并在所有项上运行它。
public static void ForEachAbomination<T>(this IEnumerable<T> source, Action<T> action) {
foreach (T item in source)
action(item);
}
这允许您进行
someObjects.ForEachAbomination(i => { i.Arm = "Manly"; });
但老实说,我认为如果你在改变事物,foreach
会更可读。