Linq的简单转换

时间:2010-08-02 19:08:11

标签: linq

我确信这是一个微不足道的问题,但我找不到一个好例子。假设您要做的就是更改列表中所有对象的一个​​属性。我想说的是:

List<SomeType> list = ...;

list.Select(x => x { x.Name = "Foo" } );

请注意缺少“new”关键字。我不想重新创建已存在的对象,只需在列表的每个元素上执行一行代码(在本例中为简单赋值)。

这有可能以一种优雅的方式在linq中实现吗?

提前致谢!

2 个答案:

答案 0 :(得分:2)

很简单。 MSDN ForEach它实际上只是List类的一个方法,但它允许你使用Lambda表达式。

 list.Foreach(x => x.Name = "Foo"  );

答案 1 :(得分:1)

如果你想要改变集合,它并不属于Linq。请参阅Eric Lippert's post了解原因。

尝试List<T>.ForEach()