如何在控制台的同一行上对齐我的项目?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在控制台的同一行上对齐我的项目?相关的知识,希望对你有一定的参考价值。
因此,我正在制作“在正确的单词中输入正确的单词以混合单词”游戏,以练习一些C#,因为我对此很陌生。最后,我想输出三列中的所有单词,但是因为我要依次遍历我的所有3个列表,所以迭代通过的下一个列表将在上一个列表之后输出。
这是控制台输出:
这是我的代码:
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]}");
}
以上是关于如何在控制台的同一行上对齐我的项目?的主要内容,如果未能解决你的问题,请参考以下文章