如何在控制台的同一行上对齐我的项目?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在控制台的同一行上对齐我的项目?相关的知识,希望对你有一定的参考价值。

因此,我正在制作“在正确的单词中输入正确的单词以混合单词”游戏,以练习一些C#,因为我对此很陌生。最后,我想输出三列中的所有单词,但是因为我要依次遍历我的所有3个列表,所以迭代通过的下一个列表将在上一个列表之后输出。

这是控制台输出:

The actual output

这是我的代码:

String s = String.Format("{0, -10} {1, -10} {2, -10}

","The mixed word: ","The correct word: ", "Your input: ");
index = 0;

while (index < 3)
{
    maxval = 0;

    while (maxval < words.TheList.Count())
    {
        foreach (var value in words.TheList[index])
        {
            if (index == 0)
            {
                s += String.Format("{0, -10}
", $"{value}");
            }
            else if (index == 1)
            {
                s += String.Format("{0, -10} {1, -10}
", null, $"{value}");
            }
            else if (index == 2)
            {
                s += String.Format("{0, -10} {1, -10} {2, -10}
", null, null, $"{value}");
            }
            else if (index > 2)
            {
                break;
            }

            maxval++;
        }
    }

    index++;
}
Console.Write($"{s}");

我希望所有三个列表都在同一高度/线上。

答案

假设三个列表的长度相同,这是一个解决方案:

for (int i = 0; i < words.TheList[0].Count; i++)
{
    s += String.Format("{0, -10} {1, -10} {2, -10} 
", words.TheList[0][i], words.TheList[1][i], words.TheList[2][i]);
}
Console.Write($"{s}");
另一答案

不是一次打印一个列表中的所有值,而是在一行中打印每个列表中的'Xth'值。

for(var index = 0; index < words.TheList[0].Length; index++)
{
    Console.Write($"{words.TheList[0][index]} {words.TheList[1][index]} {words.TheList[2][index]}");
}

以上是关于如何在控制台的同一行上对齐我的项目?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 SQL 的同一行加入结果?

如何在 C++ 中的同一行中获取多个输入?

如何使通过公共相关 ID 链接的变量显示在 Splunk 表的同一行上?

在 SQL 的同一行上打印整数变量和字符串

如何以编程方式在eclipse中的同一行上制作两个按钮?

如何在 Jupyter Notebook 的同一行上显示两个 SVG 图像