Visual Studio-如何在vb.net代码中查找字符串等于求值

Visual Studio-如何在vb.net代码中查找字符串等于求值,vb.net,visual-studio,Vb.net,Visual Studio,我需要将一堆VB.NET代码转换为C#。Instant C#是一个很好的帮手,但有一个方面。。。字符串不区分大小写的VB.NET代码 在转换之前,我想找到一种方法来搜索执行string equals计算的VB.NET代码,并将其更改为使用string.Compare(x,y,StringComparison.CurrentCultureIgnoreCase)=0 在Visual Studio 2017中是否有办法找到这些字符串求值?可能利用.NET编译器平台SDK? 例如,将测试例程更改为Tes

我需要将一堆VB.NET代码转换为C#。Instant C#是一个很好的帮手,但有一个方面。。。字符串不区分大小写的VB.NET代码

在转换之前,我想找到一种方法来搜索执行string equals计算的VB.NET代码,并将其更改为使用string.Compare(x,y,StringComparison.CurrentCultureIgnoreCase)=0

在Visual Studio 2017中是否有办法找到这些字符串求值?可能利用.NET编译器平台SDK?

例如,将测试例程更改为Test2例程的代表,然后转换为C#

C#转换后的输出如下

  private static void Test()
  {
    string x = "x";
    string y = "y";

    if ((x ?? string.Empty) == (y ?? string.Empty))
    {
      MessageBox.Show("They match");
    }

  }

  private static void Test2()
  {
    string x = "x";
    string y = "y";

    if (string.Compare(x, y, StringComparison.CurrentCultureIgnoreCase) == 0)
    {
      MessageBox.Show("They match");
    }

  }
虽然原始问题尚未得到回答,但考虑到最新的即时C#生成不区分大小写的输出,回答该问题的必要性已变得毫无意义。下面是测试例程的输出。

  private static void Test()
  {
    string x = "x";
    string y = "y";

    if (string.Equals(x ?? string.Empty, y ?? string.Empty, StringComparison.OrdinalIgnoreCase))
    {
      MessageBox.Show("They match");
    }

  }

VB.Net字符串比较区分大小写,所以我不太明白您想做什么do@GuillaumeB. 当使用选项Compare Text时,它不区分大小写。从MS Docs“您不应该使用String.Compare方法来测试相等性(即,显式查找返回值0,而不考虑一个字符串是否小于或大于另一个字符串)。相反,要确定两个字符串是否相等,请使用String.Equals(字符串、字符串、字符串比较)方法。“@DaveWilliamson-再次安装-将“严格字符串比较”选项与“比较文本”选项相结合是一个问题。@DaveWilliamson-string.Compare在使用小于或大于运算符等效于不区分大小写的比较方面做得最好,而使用OrdinalingOreCase的Equals实例方法应为pr在确定两个字符串是否相等时出错(正如Mary指出的)。下一个构建将识别这一点。
  private static void Test()
  {
    string x = "x";
    string y = "y";

    if (string.Equals(x ?? string.Empty, y ?? string.Empty, StringComparison.OrdinalIgnoreCase))
    {
      MessageBox.Show("They match");
    }

  }