C#でコンソールで文字入力を取得する際に使う「Console.ReadLine」で、長い文字列を入力すると自動で254文字に切り詰められてしまいます。
今回はこの問題を解消する方法を説明していきます。
発生条件
コンソールアプリを実行した際に、コマンドプロンプトが起動される環境でのみ発生します。
Windowsターミナルが起動する環境の場合は、文字数制限自体が多分ありません(Microsoft公式でも文字数制限があるという記載が見当たらない)。ちなみに実際に検証してみたところ、100万文字まで入力できることが確認できました。
対処方法
以下のコードでコンソールの設定を変えることで、1022文字まで入力可能にできます。
「Console.ReadLine」を呼び出す前に以下のコードを入力してください。
Console.SetIn(new StreamReader(Console.OpenStandardInput(8192)));