ForEach扩展方法中的多重选择

use*_*677 2 c# linq asp.net

是否可以在ForEach扩展方法中选择多个entiies?

(即)

部分代码给出

DataTableA.AsEnumerable().ToList().
    ForEach(x=>
    {
        x.SetField<string>("Name","Jon Skeet"),
        x.SetField<string>("msg","welcome")
    });
Run Code Online (Sandbox Code Playgroud)

当我在ForEach中应用多个选择时

 x=>
{
    x.SetField<string>("Name","Jon Skeet"),
    x.SetField<string>("msg","welcome")
}
Run Code Online (Sandbox Code Playgroud)

我无法完成声明.请帮助.

Ree*_*sey 5

您需要将lambda编译为有效的C#:

DataTableA.AsEnumerable().ToList().ForEach(
     x=>  
     {
         x.SetField<string>("Name","Jon Skeet");
         x.SetField<string>("msg","welcome");
      });
Run Code Online (Sandbox Code Playgroud)

话虽如此,我谨慎对待此事.使用ForEach是故意造成副作用的,它实际上并不比语言本身的foreach语句更简洁.就个人而言,我只想写:

foreach(var element in DataTableA.AsEnumerable())
{
    element.SetField<string>("Name","Jon Skeet");
    element.SetField<string>("msg","welcome");
}
Run Code Online (Sandbox Code Playgroud)

在我看来,这比第一个语句要清晰得多(更简单,更有效,因为它不会强制列表中的完整枚举,以及列表元素的第二个枚举).