如何在控制台应用程序中将列表打印为表格
本文关键字:列表 打印 表格 控制台 应用程序 | 更新日期: 2023-09-27 18:31:13
我需要在控制台应用程序中将列表打印为表格并以方便的格式预览的方法,如下所示:
Pom_No Item_Code ordered_qty received_qty
1011 Item_Code1 ordered_qty1 received_qty1
1011 Item_Code2 ordered_qty2 received_qty2
1011 Item_Code3 ordered_qty3 received_qty3
1012 Item_Code1 ordered_qty1 received_qty1
1012 Item_Code2 ordered_qty2 received_qty2
1012 Item_Code3 ordered_qty3 received_qty3
你的主要工具是
Console.WriteLine("{0,5} {1,10} {2,-10}", s1, s2, s3);
,5
和,10
是宽度说明符。使用负值左对齐。
也可以格式化:
Console.WriteLine("y = {0,12:#,##0.00}", y);
或宽度为 24 且采用自定义格式的日期:
String.Format("Now = {0,24:dd HH:mm:ss}", DateTime.Now);
<小时 />编辑,适用于 C#6
使用字符串内插,您现在可以编写
Console.WriteLine($"{s1,5} {s2,10} {s3,-10}");
Console.WriteLine($"y = {y,12:#,##0.00}");
您不再需要显式调用String.Format()
:
string s = $"Now = {DateTime.Now,24:dd HH:mm:ss}, y = {y,12:#,##0.00}" ;
最简单的方法是使用现有的库
Install-Package ConsoleTables
然后你可以像这样定义你的表:
ConsoleTable.From<Order>(orders).Write();
它将提供此输出
| Id | Quantity | Name | Date |
|----------|----------|-------------------|---------------------|
| 3355 | 6 | Some Product 3355 | 18-04-2016 00:52:52 |
| 3355 | 6 | Some Product 3355 | 18-04-2016 00:52:52 |
| 3355 | 6 | Some Product 3355 | 18-04-2016 00:52:52 |
| 3355 | 6 | Some Product 3355 | 18-04-2016 00:52:52 |
| 3355 | 6 | Some Product 3355 | 18-04-2016 00:52:52 |
或者定义自定义表
var table = new ConsoleTable("one", "two", "three");
table.AddRow(1, 2, 3)
.AddRow("this line should be longer", "yes it is", "oh");
table.Write();
有关更多示例,请查看 c# 控制台表
使用 ''t 放入制表符以分隔列