📜  在控制台 C# 中绘制表格 (1)

📅  最后修改于: 2023-12-03 15:23:33.271000             🧑  作者: Mango

在控制台 C# 中绘制表格

在控制台 C# 中绘制表格是一个很常见的需求,它可以使输出内容更加规整、易于阅读。本文将介绍如何使用 C# 在控制台中绘制表格。

步骤

以下是实现在控制台 C# 中绘制表格的步骤:

  1. 首先,声明变量来存储需要输出的表格数据。可以使用二维数组或 List 等数据结构来实现。
int[,] tableData = new int[3, 3] { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
  1. 接下来,声明表格的列数和行数,并计算每个单元格的宽度。可以根据数据的长度或固定宽度来设置单元格宽度。
int columns = tableData.GetLength(1);
int rows = tableData.GetLength(0);

List<int> columnWidths = new List<int>();
int totalWidth = 0;

for (int i = 0; i < columns; i++)
{
    int maxWidth = 0;
    for (int j = 0; j < rows; j++)
    {
        int width = tableData[j, i].ToString().Length;
        if (width > maxWidth)
        {
            maxWidth = width;
        }
    }
    columnWidths.Add(maxWidth);
    totalWidth += maxWidth;
}
  1. 然后,在控制台中绘制表头,并设置表头的分隔线。表头可以手动编写,也可以使用第一行数据来生成。
Console.WriteLine(new string('-', totalWidth + columns - 1));
for (int i = 0; i < columns; i++)
{
    Console.Write("| {0," + columnWidths[i] + "} ", tableData[0, i]);
}
Console.Write("|\n");
Console.WriteLine(new string('-', totalWidth + columns - 1));
  1. 最后,在控制台中输出表格内容,并设置每行的分隔线。
for (int i = 1; i < rows; i++)
{
    for (int j = 0; j < columns; j++)
    {
        Console.Write("| {0," + columnWidths[j] + "} ", tableData[i, j]);
    }
    Console.Write("|\n");
    Console.WriteLine(new string('-', totalWidth + columns - 1));
}
示例

以下是在控制台 C# 中绘制表格的完整示例:

int[,] tableData = new int[3, 3] { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };

int columns = tableData.GetLength(1);
int rows = tableData.GetLength(0);

List<int> columnWidths = new List<int>();
int totalWidth = 0;

for (int i = 0; i < columns; i++)
{
    int maxWidth = 0;
    for (int j = 0; j < rows; j++)
    {
        int width = tableData[j, i].ToString().Length;
        if (width > maxWidth)
        {
            maxWidth = width;
        }
    }
    columnWidths.Add(maxWidth);
    totalWidth += maxWidth;
}

Console.WriteLine(new string('-', totalWidth + columns - 1));
for (int i = 0; i < columns; i++)
{
    Console.Write("| {0," + columnWidths[i] + "} ", tableData[0, i]);
}
Console.Write("|\n");
Console.WriteLine(new string('-', totalWidth + columns - 1));

for (int i = 1; i < rows; i++)
{
    for (int j = 0; j < columns; j++)
    {
        Console.Write("| {0," + columnWidths[j] + "} ", tableData[i, j]);
    }
    Console.Write("|\n");
    Console.WriteLine(new string('-', totalWidth + columns - 1));
}

输出结果如下:

-----------------
| 1 | 2 | 3 |
-----------------
| 4 | 5 | 6 |
-----------------
| 7 | 8 | 9 |
-----------------
结论

在控制台 C# 中绘制表格可以简化输出内容,并使其更加规整,便于阅读。上述示例演示了如何使用 C# 在控制台中绘制表格,您可以根据需要进行自定义。