我确信这是一个微不足道的问题,但我找不到一个好例子。假设您要做的就是更改列表中所有对象的一个属性。我想说的是:
List<SomeType> list = ...;
list.Select(x => x { x.Name = "Foo" } );
请注意缺少“new”关键字。我不想重新创建已存在的对象,只需在列表的每个元素上执行一行代码(在本例中为简单赋值)。
这有可能以一种优雅的方式在linq中实现吗?
提前致谢!
答案 0 :(得分:2)
很简单。 MSDN ForEach它实际上只是List类的一个方法,但它允许你使用Lambda表达式。
list.Foreach(x => x.Name = "Foo" );
答案 1 :(得分:1)
如果你想要改变集合,它并不属于Linq。请参阅Eric Lippert's post了解原因。