繁体   English   中英

如何遍历字符串数组并将每个元素添加到对象数组

[英]How to loop through string array and add each element to object array

我试图遍历一个名为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");
        }

使用LINQ将使此任务非常容易:

Station[] stationNames = splitWords
  .Select(word => word.Split(' '))
  .Select(a => new Station(a[0], a[1], a[2]))
  .ToArray();

您的代码已经关闭,您需要做的就是删除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计数器即可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM