我正在迭代人员类型的对象列表,并显示每个人的姓名和姓氏。
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 :(得分: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)
答案 1 :(得分:2)
使用padRight用空格填充所有具有较少字符的行,以便您可以对齐 所有这些人都在同一地点:
Console.WriteLine( ("-|- Name: " + myList[i].GetName()).PadRight(20,' ') +
("| Surname: " + myList[i].GetName() ) + "|".PadRight(20,' ');
答案 2 :(得分:1)
C#的字符串有一个PadRight方法(public string PadRight ( int totalWidth, char paddingChar );
)。您可以使用此方法使用char填充字符串,只要需要将其设置为特定长度即可。缺点:您需要知道最长文本的内容,因此您需要在数据上循环两次。
答案 3 :(得分:0)
每次要添加制表符时,都可以在字符串中添加\t
。
答案 4 :(得分:0)
您应该使用复合格式,如下所示:
Console.WriteLine(
"-|- Name: {0,-10} | Surname: {1,-10} |",
myList[i].GetName(),
myList[i].GetName());
有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/txafckwd.aspx
答案 5 :(得分:0)
Console.WriteLine("-|- Name: {0,-10}| Surname: {1,-10}|",
myList[i].GetName(),
myList[i].GetSurname());
答案 6 :(得分: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,' ');