我有以下查询:
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/