Как перебрать массив строк и добавить каждый элемент в массив объектов - PullRequest
0 голосов
/ 29 апреля 2019

Я пытаюсь перебрать массив строк с именем string[] splitWords. Массив имеет следующий формат:

 // Write your main here
    Write("Enter a number between 1 & 10: ");
    int input = Convert.ToInt32(ReadLine());

    Random ranNumberGenerator = new Random();
    int randomNumber;
    randomNumber = ranNumberGenerator.Next(1, 11);

    if (input == randomNumber)
    {
        WriteLine("correct");
    }
    else if (input < randomNumber)
    {
        WriteLine("too low");
    }
    else
    {
        WriteLine("too high");
    }

В настоящее время я пытаюсь перебрать массив, в котором каждый элемент разделен по отдельности, и назначить его массиву объектов. Например, должны быть в своем собственном объекте массив элементов и так далее (каждые 3 элемента). Итак, всего в массиве объектов будет 5 элементов. В настоящее время мой код не работает или выдает ошибки.

 // Write your main here
        Write("Enter a number between 1 & 10: ");
        int input = Convert.ToInt32(ReadLine());

        Random ranNumberGenerator = new Random();
        int randomNumber;
        randomNumber = ranNumberGenerator.Next(1, 11);

        if (input == randomNumber)
        {
            WriteLine("correct");
        }
        else if (input < randomNumber)
        {
            WriteLine("too low");
        }
        else
        {
            WriteLine("too high");
        }

Ответы [ 2 ]

2 голосов
/ 29 апреля 2019

Ваш код близок, все что вам нужно сделать, это удалить блок if

вместо:

stationNames[stationCounter] = new Station(splitWords[i], splitWords[i + 1], splitWords[i + 2]);
if (stationCounter % 3 == 0)
{
    stationCounter++;
}

Вам просто нужно:

stationNames[stationCounter] = new Station(splitWords[i], splitWords[i + 1], splitWords[i + 2]);
stationCounter++;

Поскольку каждая итерация цикла перемещается на 3 шага, вам просто нужно увеличивать счетчик while каждый раз.

2 голосов
/ 29 апреля 2019

Использование LINQ сделает эту задачу очень простой:

Station[] stationNames = splitWords
  .Select(word => word.Split(' '))
  .Select(a => new Station(a[0], a[1], a[2]))
  .ToArray();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...