要检查用户输入的字符串是否包含多个单独的段,我如何才能缩短语句?

问题描述 投票:0回答:1

我编写了一个程序,其中我从用户那里获取字符串输入,并且期望用户回答是或否。我显然知道用户可能并不总是逐字地回答英语牛津词典,特别是由于 C# 区分大小写的性质,因此使用我测试的 Contains 方法来确定 Yes 是否有任何变体,即 yes,Yes,YES,y,是的,是的,是的,是的,是的等等,对于否也类似。

目前在我的代码中,我正在使用 Contains 函数来检查用户输入的字符串中是否存在这样的子字符串。

我试图缩短的代码行如下。

else if (UserInputCorrectnessTest.Contains("Yes") || UserInputCorrectnessTest.Contains("yes") || UserInputCorrectnessTest.Contains("y") || UserInputCorrectnessTest.Contains("it is"))
{

我已经尝试了上面的代码,尽管我期望用更短的代码行来执行相同的功能。

c# if-statement contains
1个回答
0
投票

这样的事情很简单也足够了。无需重新发明轮子:

private static readonly string[] _confirmations = new string[] {
    "yes", "ye", "y", "yeah", "yep", "yis", "sure", "it is"
};

private static bool IsConfirmed(string input)
{
    return _confirmations.Contains(
        input?.ToLower() ?? string.Empty, 
        StringComparer.InvariantCultureIgnoreCase);
}
© www.soinside.com 2019 - 2024. All rights reserved.