Case Insensitive Interpretation C#
本问题已经有最佳答案,请猛点这里访问。
我正在做一个文本游戏,我有一种方法从玩家那里获取输入,另一种方法处理输入。但是,它只在播放器以小写形式键入命令时才起作用。我要它忽略这个案子。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | public string GetInput() { var Test = true; while (Test) { response = Console.ReadLine(); if (validWords.Contains(response)) { Test = false; ProcessInput(response); } else { Console.WriteLine("I'm sorry, I do not understand."); } } return response; } public void ProcessInput(string response) { switch (response) { //Switch statements for responses here } } |
我试过使用我在这里找到的其他一些响应,但它们都只适用于小写输入(使用linq、string.indexof/equals/etc)。思想?
使用指定的比较器,忽视案例作为字符串参数
1 | validWords.Contains(response, StringComparer.OrdinalIgnoreCase) |
你可以添加在
一切都在读从控制台将在lowercase。
你可以阅读更多关于《
furthermore,也看到下面的问题,如果你期望输入某些文化:string.tolower string.tolowerinvariant()和()。
你可以让你的每一个接收输入,低的情况下,以实现()。
实例:
1 | string response = Console.ReadLine().ToLower(); |
改变文本"你必须使用.tolower(下)。
你是目前使用的两个
1 | if (validWords.Where(w => w.ToUpper().Equals(response.ToUpper())).Count() == 1) |
这两个案例validates在绳索上。