我可以一次使用linq foreach循环更新2个字段吗?示例代码段:我有一个带有Name,Email,CreateTime,LastUpdateTime字段的用户数据.我必须为所有用户重置CreateTime和LastUpdateTime.
要更新我正在使用2个电话,如下所示
users.ForEach(x => x.CreateTime= DateTime.Now.AddMonths(-1));
users.ForEach(x => x.LastUpdateTime = DateTime.Now);
Run Code Online (Sandbox Code Playgroud)
相反,我可以在一个使用linq foreach循环中做到这一点吗?
Jon*_*eet 52
好吧,首先,假设这是List<T>.ForEach,这不是使用LINQ.但是,您可以使用语句体创建lambda表达式:
users.ForEach(x => {
x.CreateTime = DateTime.Now.AddMonths(-1);
x.LastUpdateTime = DateTime.Now;
});
Run Code Online (Sandbox Code Playgroud)
但是,您可能还希望对所有更新使用一个一致的时间:
DateTime updateTime = DateTime.Now;
DateTime createTime = updateTime.AddMonths(-1);
users.ForEach(x => {
x.CreateTime = createTime;
x.LastUpdateTime = updateTime;
});
Run Code Online (Sandbox Code Playgroud)
但是,为什么你想以这种方式实现它并不是很清楚.我建议使用foreach循环代替:
DateTime updateTime = DateTime.Now;
DateTime createTime = updateTime.AddMonths(-1);
foreach (var user in users)
{
user.CreateTime = createTime;
user.LastUpdateTime = updateTime;
}
Run Code Online (Sandbox Code Playgroud)
有关此问题的更多想法,请参阅Eric Lippert 关于foreachvsForEach的博文.
它实际上不是linq,但你可以试试
users.ForEach(x => { x.CreateTime = DateTime.Now.AddMonths(-1);
x.LastUpdateTime = DateTime.Now; });
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27221 次 |
| 最近记录: |