C#忽略if语句的字母大小写

4 c# if-statement

我有这个if语句:

if (input == 'day')
    Console.Write({0}, dayData);
Run Code Online (Sandbox Code Playgroud)

当用户键入"day"时,控制台应该将数据写入该数组中.它工作正常,但如果用户键入'DaY'或'dAy'等,无论如何都可以使用它.我知道我可以这样做:

if (input == 'day' || input == 'dAy' || input == 'DaY')
     Console.WriteLine({0}, dayData);
Run Code Online (Sandbox Code Playgroud)

但无论如何要让它更短更整洁?谢谢.

Jua*_*uan 13

string.Equals方法允许您在比较时设置配置,您可以将其设置为忽略大小写.

if (string.Equals(input, "day", StringComparison.InvariantCultureIgnoreCase))
Run Code Online (Sandbox Code Playgroud)


Mil*_*ith 10

if (input.ToLower() == "day") { }
Run Code Online (Sandbox Code Playgroud)

如果你的代码是国际的,你正在编写一个库,你想要一个小的速度提升,你是在一个循环或大字符串,等等,使用以下内容:

if (input.Equals("day", StringComparison.OrdinalIgnoreCase)) { }
Run Code Online (Sandbox Code Playgroud)

或者使用特定的国际文化:

if (string.Compare(input, "day", true, new CultureInfo("de-DE")) == 0) { }
Run Code Online (Sandbox Code Playgroud)

  • @ JJ85,不客气.如果代码是国际的,Juan实际上更正确(除了我认为OrdinalIgnoreCase是建议的). (4认同)