是否可以在ForEach Extension Method中选择多个entiies?
(即)
给出部分代码
DataTableA.AsEnumerable().ToList().
ForEach(x=>
{
x.SetField<string>("Name","Jon Skeet"),
x.SetField<string>("msg","welcome")
});
当我在ForEach中应用多个选择时
x=>
{
x.SetField<string>("Name","Jon Skeet"),
x.SetField<string>("msg","welcome")
}
我无法完成声明。请帮助。
答案 0 :(得分:5)
您需要将lambda编译为有效的C#:
DataTableA.AsEnumerable().ToList().ForEach(
x=>
{
x.SetField<string>("Name","Jon Skeet");
x.SetField<string>("msg","welcome");
});
话虽如此,我谨慎对待此事。使用ForEach是purposely causing side-effects,它实际上并不比语言本身的foreach语句更简洁。就个人而言,我只想写:
foreach(var element in DataTableA.AsEnumerable())
{
element.SetField<string>("Name","Jon Skeet");
element.SetField<string>("msg","welcome");
}
在我看来,这比第一个语句要清晰得多(更短,更高效,因为它不会强制列表中的完整枚举,以及列表元素的第二个枚举)。