我有这个if语句:
if (input == 'day')
Console.Write({0}, dayData);
当用户键入“day”时,控制台应该将数据写入该数组。它工作正常,但如果用户键入'DaY'或'dAy'等,无论如何都可以使用它。我知道我能做到:
if (input == 'day' || input == 'dAy' || input == 'DaY')
Console.WriteLine({0}, dayData);
但是,无论如何要让它更短更整洁? 感谢。
答案 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))
{
//...
}
第二个参数允许您使用六种预定义比较模式中的一种。