多行字符串中的新行

时间:2010-04-13 09:41:41

标签: c# string multiline

尝试覆盖我的一个类中的tostring。

 return string.Format(@" name = {0}
                         ID = {1}
                         sec nr = {2}
                         acc nr = {3}", string, int, int ,int); // types

但事实是,打印出来时结果不对齐:

name = test
                                   ID = 42
                                   sec nr = 11
                                   acc nr = 55

尝试添加\ n只需将其打印出来而不进行格式化。猜测它与@“”有关,我正在使用它来进行多线程。

希望打印出来:

name = test
ID = 42
sec nr = 11
acc nr = 55

5 个答案:

答案 0 :(得分:14)

如果在前面添加空格,则会以这种方式打印。

我通常这样做。

   return string.Format(
@" name = {0}
 ID = {1}
 sec nr = {2}
 acc nr = {3}", string, int, int ,int); // types

更新:也许是一个更漂亮的选择:

string[] lines = 
{
  " name = {0}",
  " ID = {1}",
  " sec nr = {2}",
  " acc nr = {3}"
};

return string.Format(
         string.Join(Environment.Newline, lines), 
         arg0, arg1, arg2, arg3);

答案 1 :(得分:6)

字符串前的@关闭标准C#字符串格式,请尝试

 return string.Format(" name = {0}\n ID = {1} \n sec nr = {2} \n acc nr = {3}", 
                      string, int, int ,int); // types

您不能使用@ 使用\ n,\ t等。

修改

这是 - 恕我直言 - 尽可能好

 return string.Format("name = {0}\n" + 
                      "ID = {1}\n" + 
                      "sec nr = {2}\n" + 
                      "acc nr = {3}", 
                       string, int, int ,int); 

答案 2 :(得分:4)

来自msdn的解决方案:

// Sample for the Environment.NewLine property
using System;

class Sample 
{
    public static void Main() 
    {
    Console.WriteLine();
    Console.WriteLine("NewLine: {0}  first line{0}  second line{0}  third line",
                          Environment.NewLine);
    }
}
/*
This example produces the following results:

NewLine:
  first line
  second line
  third line
*/

答案 3 :(得分:1)

String.Join(Environment.NewLine, value.Select(i => i)

其中values是字符串集合

答案 4 :(得分:0)

不,这是你在那里的所有空间。