【问题标题】:VS is making this suggestion. Why does distinct appear twice?VS 提出这个建议。为什么 distinct 出现两次?
【发布时间】:2021-10-19 18:52:11
【问题描述】:

我有一个关于 Visual Studio 给我的建议的问题。我有一个类范围的 char 数组,其中放置了允许用户输入的字符。在这种情况下已经发生了这种情况。我不希望任何字符多次出现,因此使用此代码。

Dim result As IEnumerable(Of Char) = erlaubte_Zeichen.Distinct()
erlaubte_Zeichen = New Char(result.Count - 1) {}
erlaubte_Zeichen = result.ToArray()

VS 现在提出这个改进建议。 为什么 distinct 出现两次?

erlaubte_Zeichen = (New Char(erlaubte_Zeichen.Distinct().Count - 1) {})
erlaubte_Zeichen = erlaubte_Zeichen.Distinct().ToArray()

Microsoft Visual Studio 社区 2019 版本 16.11.1

【问题讨论】:

  • 第一个用于获取不同值的计数(该不同的结果实际上并未被存储),而第二个被用作数组的基础...erlaubte_Zeichen = erlaubte_Zeichen.Distinct().ToArray() 应该够了

标签: vb.net visual-studio-2019 distinct-values


【解决方案1】:

VS 给了你一个糟糕的建议,因为你一开始就编写了糟糕的代码。在您的原始代码中,中间行完全没有意义。第三行创建一个新数组并将其分配给变量,因此您在第二行中创建并分配给变量的数组被简单地丢弃。这个:

Dim result As IEnumerable(Of Char) = erlaubte_Zeichen.Distinct()
erlaubte_Zeichen = New Char(result.Count - 1) {}
erlaubte_Zeichen = result.ToArray()

可以变成这样:

Dim result As IEnumerable(Of Char) = erlaubte_Zeichen.Distinct()
erlaubte_Zeichen = result.ToArray()

这意味着它非常冗长,应该这样写:

erlaubte_Zeichen = erlaubte_Zeichen.Distinct().ToArray()

如果你不包含无用的代码,那么 VS 将不会提供使无用代码更高效的建议。

【讨论】:

    猜你喜欢
    • 2016-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    相关资源
    最近更新 更多