System.CodeDom.Compiler.IndentedTextWriter
This is built in to the .Net Framework in system.dll, but it is not super-robust. It should work under constrained useage (like not having a newline character in a string).
static void Main(string[] args)
{
using (System.CodeDom.Compiler.IndentedTextWriter writer = new System.CodeDom.Compiler.IndentedTextWriter(Console.Out, " "))
{
Console.SetOut(writer);
writer.Indent = 0;
writer.WriteLine("test");
writer.Indent = 1;
writer.WriteLine("What happens
if there are line-
break in the middle?");
writer.Indent = 2;
writer.WriteLine("another test");
writer.Indent = 3;
writer.WriteLine("and another test");
writer.Indent = 0;
writer.WriteLine("hello");
}
Console.ReadLine();
}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…