将Console.WriteLine()输出重定向到字符串

lre*_*rey 2 c# console-application

我需要Console.WriteLine()输出,并追加到字符串。我不能将Main方法更改为仅追加到字符串而不是写入控制台-我需要一种方法从控制台读取所有已写入的行并将其追加到字符串。

目前,我一直在使用FileStream并将控制台输出重定向到文本文件,然后从中读取。

var fs = new FileStream("dataOut.txt", FileMode.Create);
var sw = new StreamWriter(fs);
Console.SetOut(sw);
Console.SetError(sw);
Run Code Online (Sandbox Code Playgroud)

然后Console.WriteLine("whatever")写入文本文件。但是,我不想在文本文件中来回移动。

这样的事情可能吗?我意识到下面的示例没有。

string outString = "";
Console.SetOut(outString);
Console.SetError(outString);
Run Code Online (Sandbox Code Playgroud)

Kyl*_*yle 6

使用StringWriter

var sw = new StringWriter();
Console.SetOut(sw);
Console.SetError(sw);
string result = sw.ToString();
Run Code Online (Sandbox Code Playgroud)