Как выровнять мои элементы по одной строке в консоли? - PullRequest
1 голос
/ 23 октября 2019

Так что я делаю игру «набери правильное слово для смешанного слова», чтобы попрактиковаться в c #, так как я довольно новичок в этом. В конце я хотел бы вывести все слова в три столбца, но поскольку я перебираю все мои 3 списка один за другим, следующий список, через который он проходит, будет выведен после предыдущего списка.

Вот консольный вывод:

The actual output

Вот мой код:

String s = String.Format("{0, -10} {1, -10} {2, -10}\n\n","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}\n", $"{value}");
            }
            else if (index == 1)
            {
                s += String.Format("{0, -10} {1, -10}\n", null, $"{value}");
            }
            else if (index == 2)
            {
                s += String.Format("{0, -10} {1, -10} {2, -10}\n", null, null, $"{value}");
            }
            else if (index > 2)
            {
                break;
            }

            maxval++;
        }
    }

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

Я ожидаювсе три списка должны быть на одной высоте / линии.

Ответы [ 2 ]

2 голосов
/ 23 октября 2019

Вместо того, чтобы печатать все значения из одного списка за раз, выведите «X-е» значение из каждого списка в одной строке.

for(var index = 0; index < words.TheList[0].Count; index++)
{
    Console.Write($"{words.TheList[0][index]} {words.TheList[1][index]} {words.TheList[2][index]}");
}
1 голос
/ 23 октября 2019

Предполагая, что три списка имеют одинаковую длину, вот решение:

for (int i = 0; i < words.TheList[0].Count; i++)
{
    s += String.Format("{0, -10} {1, -10} {2, -10} \n", words.TheList[0][i], words.TheList[1][i], words.TheList[2][i]);
}
Console.Write($"{s}");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...