ReadLineメソッドを使うことで標準入力から1行分の文字列を読み込むことができます。 ReadLineメソッドの戻り値には改行文字は含まれないため、末尾の改行文字を取り除くchomp/chopのような操作は不要です。

Console.ReadLineメソッドで標準入力から一行分の文字列を読み込む
using System;

class Sample {
  static void Main()
  {
    Console.WriteLine("何か入力してください");

    // 標準入力から一行読み込む
    var text = Console.ReadLine();

    // 標準入力から読み込んだ文字列を標準出力に書き込む
    Console.WriteLine("'{0}'と入力されました", text);
  }
}
キー入力を使った場合の実行例
>sample.exe
何か入力してください
Hello, world!
'Hello, world!'と入力されました
パイプを使った場合の実行例
>type sample.txt
Hello, line1!
Hello, line2!
Hello, line3!

>type sample.txt | sample.exe
何か入力してください
'Hello, line1!'と入力されました

コマンドプロンプトで実行した場合(標準入力がターミナルに接続されている場合)は、ReadLineメソッドはエンターキーが押されるまで待機します。 標準入力がパイプ等に接続されている場合は、その接続先から1行分読み込んだ時点で処理が戻ります。 なお、ReadLineメソッドではCR/LF/CRLFのいずれかを改行として扱います。

またReadLineメソッドは、リダイレクトパイプで渡される内容が終端(EOF)に達した場合や、コンソールアプリケーションにおいてCTRL+Z(LinuxではCTRL+D)によって入力を中断した場合など、それ以上標準入力から読み込める文字列がない場合にはnull/Nothingを返します。

コンソールアプリケーションではCTRL+Cを押下することでアプリケーションが中断します。 CTRL+Cが押下されたときの動作を変更したい場合は、Console.CancelKeyPressイベントにイベントハンドラを設定することで動作を定義することができます。

標準入出力との接続については§.標準ストリームのリダイレクト子プロセスの標準入出力 §.自プロセスと子プロセスの標準ストリームをパイプする、リダイレクト・パイプなどコマンドラインでの操作についてはMS-DOSコマンドプロンプトTips §.パイプとリダイレクトを参照してください。