2013-10-14 97 views
0

我遍歷類型爲Persons的對象列表,並顯示每個人的姓名。C#控制檯格式化

for (int i = 0; i < myList.Count; i++) 
{ 
    Console.WriteLine("-|- Name: " + myList[i].GetName() + 
         "| Surname: " + myList[i].GetName() + "|"); 

} 

控制檯中的輸出如下!

-|- Name: Abcdef | Surname: Asqw | 
-|- Name: Aswer | Surname: Asdgfsdf | 
-|- Name: Adxz | Surname: Asdsada | 

我想輸出顯示在表格的形式如下。

-|- Name: Abcdef | Surname: Asqw  | 
-|- Name: Aswer | Surname: Asdgfsdf | 
-|- Name: Adxz | Surname: Asdsada | 

感謝

+0

http://stackoverflow.com/questions/366124/inserting-a-tab-character-into-text-using- c-sharp –

+0

您必須爲指定的名稱長度找到適當數量的製表符('\ t'),以便每個製表符長度爲 –

回答

2

使用padRight,以填補空間中的所有行與更少的字符,所以你可以在相同的位置對齊 所有的人:

Console.WriteLine(("-|- Name: " + myList[i].GetName()).PadRight(20,' ') + 
        ("| Surname: " + myList[i].GetName()) + "|".PadRight(20,' '); 
+0

這不會填充每列,而是整個字符串... – Sascha

+0

爲true。讓我更新它;) –

0

您可以在字符串添加\t每次你想添加一個製表符。

1

C#的字符串有一個PadRight方法(public string PadRight (int totalWidth, char paddingChar);)。你可以使用這個方法來填充一個char字符串,只要它需要一定的長度。缺點:你需要知道最長的文本會是什麼,所以你需要在數據上循環兩次。

0
Console.WriteLine("-|- Name: {0,-10}| Surname: {1,-10}|", 
    myList[i].GetName(), 
    myList[i].GetSurname()); 
0

您可以在字符串中使用的標籤(\t),例如:

Console.WriteLine("-|- Name: " + myList[i].GetName() + "\t | Surname: " 
        + myList[i].GetName() + "\t |"); 

根據需要添加儘可能多的選項卡。

或者你可以確保每列佔用至少x個字:

Console.WriteLine("-|- Name: {0,-x}| Surname: {1,-x}|", 
    myList[i].GetName(), 
    myList[i].GetSurname()); 

或者你可以使用PadRight方法上的每一列(集X你想要的號碼):

Console.WriteLine(("-|- Name: " + myList[i].GetName()).PadRight(x,' ') + 
        ("| Surname: " + myList[i].GetName()) + "|".PadRight(x,' '); 
3
var name = myList[i].GetName(); 
var surname = myList[i].GetName(); 
Console.WriteLine("-|- Name: {0,-10} | Surname: {1:-10} |", name, surname); 

您可以向格式化程序提供填充參數。在這個例子中,每列至少佔用10個字符。

{0:-10} 
    0 argument reference 
    : parameter separator 
    -10 left-justified padding (exempting the `-` means it will pad to the right) 

參見String.Format文檔的更多信息(因爲Console.WriteLine(format, params args)繼承這個composite formatting