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

时间:2015-03-20 16:03:37

标签: c# if-statement

我有这个if语句:

if (input == 'day')
    Console.Write({0}, dayData);

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

if (input == 'day' || input == 'dAy' || input == 'DaY')
     Console.WriteLine({0}, dayData);

但是,无论如何要让它更短更整洁? 感谢。

5 个答案:

答案 0 :(得分:13)

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

if (string.Equals(input, "day", StringComparison.InvariantCultureIgnoreCase))

答案 1 :(得分:9)

if (input.ToLower() == "day") { }

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

if (input.Equals("day", StringComparison.OrdinalIgnoreCase)) { }

或使用特定的国际文化:

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

答案 2 :(得分:1)

string.Equals方法允许您检查字符串的内容并忽略大小写,示例:

if (input.Equals("day", StringComparison.OrdinalIgnoreCase))
{

}

答案 3 :(得分:1)

你提到一个数组,所以我假设你同时输入多个东西(比如' day',' dAy'等)

foreach (var item in input)
{
    if (item.ToLower() == "day")
    {
        Console.WriteLine("{0}", item);
        break;
    }
}

编辑:这将检查数组中的每个项目,写入控制台,然后停止,如果有一个" day"。

答案 4 :(得分:1)

另一种方式是

if(str1.Equals(str2, StringComparison.InvariantCultureIgnoreCase))
{
    //...
}

第二个参数允许您使用六种预定义比较模式中的一种。