创建多行字符串的最佳语法

时间:2009-10-02 07:43:52

标签: c# .net string syntax multiline

在C#中创建多行字符串的最佳方法是什么?

我知道以下方法:

使用StringBuilder

var result = new StringBuilder().AppendLine("one").AppenLine("two").ToString()

看起来太冗长了。

使用@

      var result = @"one
two"

看起来很丑,格式很差。

你知道更好的方法吗?

8 个答案:

答案 0 :(得分:21)

这个怎么样:

var result = string.Join(Environment.NewLine, new string[]{ 
    "one",
    "two" 
});

这有点痛苦,可能是一种过度杀伤,但它可以保留代码中的线条分离。
为了改善一点,你可以使用辅助方法:

static string MultiLine(params string[] args) {
    return string.Join(Environment.NewLine, args);
}

static void Main(string[] args) {
    var result = MultiLine( 
        "one",
        "two" 
    );
}

答案 1 :(得分:11)

这个怎么样?

var result = "one\ntwo";

如果您对特定于操作系统的行结尾感到挑剔,请使用Format

var result = String.Format("one{0}two", Environment.NewLine);

(好吧,“挑剔”不是正确的词:在处理文本文件时,在处理传统软件时,通常需要或甚至需要特定于操作系统的行结尾。)

答案 2 :(得分:3)

“最佳”是一个非常开放的观点。

你好吗:

  • 代码的表现
  • 加速编码器可以写它
  • 能够让其他程序员轻松理解
  • 能够让其他程序员轻松修改

所有这些对于“最佳”做事方式都有很大的不同。

答案 3 :(得分:2)

我说这取决于你需要什么...

但为了简化它,我会选择:

var s = new StringBuilder();
s.Append("one");
s.Append("two");
s.ToString();

但是因为我们不知道你需要什么。提供更好的提示非常困难

答案 4 :(得分:1)

您不应在源代码中定义大字符串。 您应该在外部文本文件中定义它:

string s = File.OpenText("myfile.txt").ReadToEnd();

答案 5 :(得分:1)

关闭what @codymanix said,您可以将长多行字符串放在资源文件中。对于某些部署方案,这可能更容易,因为文本“文件”将包含在DLL / EXE中。

答案 6 :(得分:1)

嗯,嗯,怎么样:

string s = 
  "abc\n" + 
  "def\n" ;

答案 7 :(得分:0)

有时您需要不止一行。 我使用Environment.NewLine,但是我把它放在一个方法中来加倍它。 :)

    private string newLines(int multiplier)
    {
        StringBuilder newlines = new StringBuilder();
        for (int i = 0; i < multiplier; i++)
            newlines.Append(Environment.NewLine);
        return newlines.ToString();
    }