C# 除了字符串的第一行之外,是否在每行的开头添加空白?

C# 除了字符串的第一行之外,是否在每行的开头添加空白?,c#,asp.net,string,webforms,C#,Asp.net,String,Webforms,我想在每一行的开头加一个空格,除了字符串的第一行。我正在使用 输入: abc def efg hij 输出: abc def efg hij 我的代码: string text = "abc\ndef\nhij"; string result = string.Join(Environment.NewLine, text .Split(new string[] { Environment.NewLine }, StringSplitOpti

我想在每一行的开头加一个空格,除了字符串的第一行。我正在使用

输入:

abc
def
efg
hij
输出:

abc
 def
 efg
 hij
我的代码:

string text = "abc\ndef\nhij";

string result = string.Join(Environment.NewLine, text
                      .Split(new string[] { Environment.NewLine }, StringSplitOptions.None)
                      .Select(line => " " + line));

TextArea1_trim_id.InnerText = result;

问题在于
环境。换行符
,如果您执行以下操作:

Console.WriteLine(Regex.Escape(Environment.NewLine))
您会注意到它是
\r\n
\r
(Windows或Mac),但您只需要
\n
。此外,您还可以通过在
连接过程中添加空格来避免最后一次
选择

string result = string.Join("\n ", text
    .Split(new string[] { "\n" }, StringSplitOptions.None));


n.b.另请查看。

谢谢,除了字符串的第一行之外,它在每行的开头添加了空格,但此代码也在每两行之间添加了一个空行。我想要的是,它应该只在每行开始之前添加空格,而不应该在每行之后添加空行。我尝试删除“\n”
Split(新字符串[]{”“},StringSplitOptions.None))
。但它不起作用。我已经解决了这个问题。我刚刚用
StringSplitOptions替换了
StringSplitOptions.None
。RemoveEmptyEntries
Environment.NewLine
替换了
现在它工作正常。