簡體   English   中英

多行字符串中的新行

[英]new line in a multi-line string

試圖覆蓋我的一個類中的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

如果在前面添加空格,則會以這種方式打印。

我通常這樣做。

   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);

字符串前面的@關閉標准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); 

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
*/
String.Join(Environment.NewLine, value.Select(i => i)

其中values是字符串的集合

不,這是你在那里的所有空間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM