Как распечатать List как таблицу в консольном приложении?
Мне нужен метод для печати списка в виде таблицы в консольном приложении и предварительного просмотра в удобном формате, например:
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
Ответы
Ответ 1
Ваш основной инструмент будет
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);
Изменить, для С# 6
С помощью строковой интерполяции вы также можете написать
Console.WriteLine($"{s1,5} {s2,10} {s3,-10}");
Console.WriteLine($"y = {y,12:#,##0.00}");
String.Format($"Now = {DateTime.Now,24:dd HH:mm:ss}" );
Вам не нужно явно вызывать String.Format()
:
string s = $"Now = {DateTime.Now,24:dd HH:mm:ss}" + " " + $"y = {y,12:#,##0.00}" ;
Ответ 2
Проще всего это сделать, чтобы использовать существующую библиотеку
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();
Для получения дополнительных примеров таблица консоли С#
Ответ 3
Используйте\t для добавления вкладок для разделения столбцов