【发布时间】:2021-05-28 11:34:33
【问题描述】:
我有一个对象列表。该对象有一个名为 val 的字段。此值不应小于零,但此列表中有此类对象。我想用零替换那些小于零的值。最简单的解决方案是
foreach(Obj item in list)
{
if (item.val < 0)
{
item.val = 0;
}
}
但我想使用 LINQ 来执行此操作。重要的是我不想要更新元素的列表。我想要相同的列表,只是替换了必要的值。提前致谢。
【问题讨论】:
-
LINQ 查询,它不会修改任何内容。您可以使用
Where(it=>it.val<0)来检索具有负值的项目,但仍然需要在循环中进行修改 -
要求“使用 LINQ”从何而来,为什么?
-
顺便说一句,您现在拥有的一切都很好,而且比 LINQ 更快。为什么要改呢?
-
这不是必需品。我正在学习 LINQ,并认为我可以使用 LINQ 完成此任务。但似乎 LINQ(顾名思义)是用于查询而不是更新。感谢 cmets。
标签: c# linq collections