我正在学习一些LINQ。当有这样的事情时:
foreach (var user in result.Items)
{
if (!(user.UserId.Equals(session.UserId)))
{
user.CanBeDeleted = true;
}
}
如何使用LINQ解决问题? LINQ或foreach-if组合表现更好吗?
答案 0 :(得分:4)
在大多数情况下,LINQ不会使您的程序运行得更快,但它会使您的代码更具可读性,因此更易于维护。
但是如果你需要修改LINQ不是正确的工具。 Q
代表查询。使用普通循环来修改它。但您可以过滤必须修改的内容:
var toBeDeleted = result.Items.Where(u => u.UserId != session.UserId);
现在您可以使用循环执行它并更改User
:
foreach(User user in toBeDeleted)
user.CanBeDeleted = true;
答案 1 :(得分:0)
result.Items.Where(user =>
!user.UserId.Equals(session.UserId)).ToList()
.ForEach(user => user.CanBeDeleted = true);