C# ForEach扩展方法中的多重选择

C# ForEach扩展方法中的多重选择,c#,asp.net,linq,C#,Asp.net,Linq,在ForEach扩展方法中是否可以选择多个实体 (即) 给出了部分代码 DataTableA.AsEnumerable().ToList(). ForEach(x=> { x.SetField<string>("Name","Jon Skeet"), x.SetField<string>("msg","welcome") }); DataTableA.AsEnumerable().ToList()。 ForE

在ForEach扩展方法中是否可以选择多个实体

(即)

给出了部分代码

DataTableA.AsEnumerable().ToList().
    ForEach(x=>
    {
        x.SetField<string>("Name","Jon Skeet"),
        x.SetField<string>("msg","welcome")
    });
DataTableA.AsEnumerable().ToList()。
ForEach(x=>
{
x、 设置域(“名称”、“Jon Skeet”),
x、 设置字段(“msg”,“欢迎”)
});
当我在ForEach中应用多个选择时

 x=>
{
    x.SetField<string>("Name","Jon Skeet"),
    x.SetField<string>("msg","welcome")
}
x=>
{
x、 设置域(“名称”、“Jon Skeet”),
x、 设置字段(“msg”,“欢迎”)
}

我无法完成该语句。请帮助。

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

DataTableA.AsEnumerable().ToList().ForEach(
x=>
{
x、 设置域(“名称”、“Jon Skeet”);
x、 设置字段(“msg”,“欢迎”);
});
尽管如此,我还是要提醒大家不要这样做。使用ForEach是非常简单的,它实际上并不比语言本身中的ForEach语句更简洁。就我个人而言,我会写:

foreach(var element in DataTableA.AsEnumerable())
{
    element.SetField<string>("Name","Jon Skeet");
    element.SetField<string>("msg","welcome");
}
foreach(DataTableA.AsEnumerable()中的var元素)
{
元素设置域(“名称”、“Jon Skeet”);
元素设置字段(“msg”、“welcome”);
}

在我看来,这比第一句话要清楚得多(而且更简短、更有效,因为它不会强制对列表进行完整枚举,也不会强制对列表元素进行第二次枚举)。

再次感谢我根据您的建议更新了代码
foreach(var element in DataTableA.AsEnumerable())
{
    element.SetField<string>("Name","Jon Skeet");
    element.SetField<string>("msg","welcome");
}