Console.Inを使った一例を挙げます。 Consoleクラスには標準入力に書き込まれる内容すべてを読み込むメソッドは存在しませんが、TextReaderにはReadToEndメソッドが用意されているため、これを使って標準入力の内容すべてを読み込むことができます。
Console.In.ReadToEndメソッドを使って標準入力の内容をすべて読み込む
using System;
class Sample {
static void Main()
{
// ReadToEndメソッドで標準入力の内容をすべて読み込む
var text = Console.In.ReadToEnd();
// 読み込んだ内容を出力する
Console.WriteLine("(length = {0})", text.Length);
Console.WriteLine(text);
}
}
キー入力を使った場合の実行例
>sample.exe
line1
line2
line3
^Z
(length = 21)
line1
line2
line3
パイプを使った場合の実行例
>type sample.txt line1 line2 line3 >type sample.txt | sample.exe (length = 21) line1 line2 line3
コンソールアプリケーションの場合、上記のコードはCTRL-Z(LinuxではCTRL+D)で標準入力への入力を終了しない限りReadToEndメソッドから処理が戻らず待機状態になります。
コマンドラインでのリダイレクト・パイプと標準入出力との接続についてはMS-DOSコマンドプロンプトTips §.パイプとリダイレクトを参照してください。