c# - 在 LINQ Select 中赋值?

标签 c# linq

我有以下查询:

drivers.Select(d => { d.id = 0; d.updated = DateTime.Now; return d; }).ToList();

drivers 是一个包含不同 ID 和更新值的列表,因此我正在更改 Select 中的值,但这是执行此操作的正确方法。我已经知道我不会将驱动程序重新分配给驱动程序,因为 Resharper 对此有所提示,所以我想如果这样会更好:

drivers = drivers.Select(d => { d.id = 0; d.updated = DateTime.Now; return d; }).ToList();

但这仍然是有人应该为驱动程序列表中的每个元素分配新值的方式吗?

最佳答案

虽然这看起来很无辜,尤其是与立即执行代码的 ToList 调用结合使用时,我绝对不会在查询中修改任何内容:这个技巧非常不寻常,以至于它会绊倒你的程序的读者,即使是有经验的读者,尤其是如果他们以前从未见过这个。

foreach 循环没有任何问题 - 您可以使用 LINQ 做到这一点并不意味着您应该这样做。

关于c# - 在 LINQ Select 中赋值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16594544/

相关文章:

c# - 我应该使用 while(true) 从 Socket 接收数据吗?

c# - Ghostscript 在命令行调用时抑制输出窗口

c# - Cast<T> 的实现不是针对 Linq 的不可变风格吗?

c# - linq查询在字符串列表中分组

vb.net - 这个 linq 查询有什么问题?

c# - 如何在 C# 中通过 Google API 发布到 Blogger

c# - 比较两个日期时间,一个来自 Datetimepicker,一个来自 MySql 数据库

c# - 如何让随机数/字母生成器生成 3 个字母然后生成 6 个数字?在 WPF 中

c# - NewtonSoft JArray - 如何使用 LINQ 选择多个元素

c# - 我如何优化这个 linq 查询