【问题标题】:How to stop Resharper toggling between Enumerable.ToList and Select suggestion如何停止 Resharper 在 Enumerable.ToList 和 Select 建议之间切换
【发布时间】:2016-02-20 03:13:37
【问题描述】:

如果我使用 Resharper 代码清理功能,我会找到我的代码...

var personInfos = persons.Select(Mapper.Map<PersonInfo>).ToList();

改为...

var personInfos = Enumerable.ToList(persons.Select(Mapper.Map<PersonInfo>));

但随后 Resharper 为 Enumerable.ToList 提出了“扩展方法调用”的建议,因此代码返回到 ...

var personInfos = persons.Select(Mapper.Map<PersonInfo>).ToList();

我已经检查了 Resharper 代码编辑选项,但我看不到在哪里/如何停止这种切换行为

【问题讨论】:

    标签: c# resharper resharper-9.0


    【解决方案1】:

    我认为@Matthias 可能是正确的

    我已经更新到当前的 Resharper,即 2016.1.2 并尝试了代码...

    var personInfos = persons.Select(Mapper.Map<PersonInfo>).ToList();
    

    Resharper 不再提供建议

    @Vlad274 这是我的代码清理Optimise 'using' directivesShorten qualified references 仍然检查

    【讨论】:

      【解决方案2】:

      要解决此问题,您需要创建自定义清理配置文件。下面突出显示了需要关闭的两个设置。

      默认情况下,完全清理会打开这两个设置。如果任一设置打开,清理将进行此切换。

      【讨论】:

      • 如果真的是这样,对我来说这听起来像是一个错误,你应该将它报告给youtrack.jetbrains.com。这两个选项显然不负责在静态调用和扩展调用之间进行交换。我启用了这两个选项,并保留了通常的类似实例的调用。
      【解决方案3】:

      作为升级的替代方案,也许是更通用的解决方案:

      在代码检查菜单下,您应该检查“转换静态方法调用...”,有一个名为“配置检查严重性”的选项。在这里你应该可以选择:不显示。

      当然,如果您将这些首选项保存到共享设置文件中,这样所有使用此解决方案的人都会自动共享此设置,则效果最好。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多