如何限制控制台输入的字符数?C#

Mar*_*lon 0 c# user-input console-application

基本上,我想在Console.ReadLine()中最多显示200个字符,以便在字符开始被抑制之前进行用户输入.我希望它像TextBox.MaxLength,除了控制台输入.我该怎么做?

我不想这样做 input.Substring(0, 200).

解决了:

我使用了自己的ReadLine函数,它是Console.ReadKey()的循环.

它看起来像这样,基本上:

StringBuilder sb = new StringBuilder();
bool loop = true;
while (loop)
{
    ConsoleKeyInfo keyInfo = Console.ReadKey(true); // won't show up in console
    switch (keyInfo.Key)
    {
         case ConsoleKey.Enter:
         {
              loop = false;
              break;
         }
         default:
         {
              if (sb.Length < 200)
              {
                  sb.Append(keyInfo.KeyChar);
                  Console.Write(keyInfo.KeyChar);
              }
              break;
         }
    }
}

return sb.ToString();
Run Code Online (Sandbox Code Playgroud)

感谢大家

Tra*_*Guy 8

无法限制输入ReadLine的文本.正如MSDN文章所解释的那样,

一行被定义为一个字符序列,后跟一个回车符(十六进制0x000d),一个换行符(十六进制0x000a)或者一个值. Environment.NewLine

你可以做的是,在一个不允许超过200的循环中使用ReadKey,并在用户键时断开Environment.NewLine.