我想检查用户输入是否在我的数组中。如果不是,则应写入“无效输入”。行读已经有效。我只是想检查一下。但就像我做的那样,它不起作用。我听说我将使用 for 循环。但是如何?

[...]
char[] menuChars = { 'e', 'E', 'l', 'L', 'k', 'K', 't', 'T', 's', 'S', 'b', 'B' };

if (userKeyPress == !menuChars)
        {
          Console.WriteLine("Please insert a valid char: ");
        }
Console.ReadLine()
[...]

最佳答案

我宁愿将集合类型从 array 更改为 HashSet<Char> :

  HashSet<Char> menuChars = new HashSet<Char>() {
    'e', 'E', 'l', 'L', 'k', 'K', 't', 'T', 's', 'S', 'b', 'B'
  };

  ...

  Char userKeyPress;

  // and condition check from "if" to "do..while"
  // in order to repeat asking user until valid character has been provided
  do {
    Console.WriteLine("Please insert a valid char: ");
    // Or this:
    // userKeyPress = Console.Read();
    userKeyPress = Console.ReadKey().KeyChar;
  }
  while (!menuChars.Contains(userKeyPress));

关于c# - 检查用户输入是否在我的数组中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33414133/

10-10 13:45