【问题标题】:How to get Resharper to convert back to a foreach loop如何让 Resharper 转换回 foreach 循环
【发布时间】:2026-01-15 01:55:01
【问题描述】:

Resharper 5 可以将我的 foreachloops 转换为 Linq 查询。我喜欢哪个。但是 linq 比 foreachloop 更难调试。

当我将 foreach 语句转换为 linq 查询时,我看不到任何返回其他方式的选项。

有人知道怎么做吗?有没有可能?

【问题讨论】:

  • 听起来 Resharper 值得实现这一点。
  • @Jangwenyi - 如果我碰巧刚刚完成了更改,我可以撤消更改。但我说的是如果我刚刚发现一个抛出异常的 linq 查询。我希望我的查询可以转换回 foreach,即使我不久前将其转换为 linq 查询。
  • +1,LINQ 看起来不错,但调试起来要困难得多。我遇到了完全相同的问题,使用 resharper 进行转换,现在我将不得不手动转换回 foreach,这样我才能知道发生了什么。经验教训 - 将所有内容保留为 foreach。

标签: linq resharper foreach resharper-5.0


【解决方案1】:

我不相信这是可能的。当然,它没有在 examples of Quick Fixes 中列出,其中显示了 loop-to-LINQ-expression。

您应该能够做的是使用上下文操作“将 LINQ 转换为方法链”从“流利”样式转到“方法”样式,然后有选择地使用“引入变量”将表达式拉到件。

【讨论】:

    【解决方案2】:

    我们正在为 ReSharper vNext 开发 LINQ2Foreach(和其他一些)功能

    【讨论】:

    • 已经好几年了。现在在产品里吗?可能是更新此答案的好时机。