【问题标题】:Looping through a large array and adding the values together C#循环遍历一个大数组并将值加在一起 ​​C#
【发布时间】:2021-06-18 00:12:12
【问题描述】:

我正在尝试遍历一个包含 180 个元素的数组,并将前 60 个元素加在一起并将其存储在一个列表中。然后将接下来的 60 个元素加在一起并将它们存储在列表中,并对最后的 60 个重复此操作。到目前为止,我的代码只会添加前 60 个元素并将它们存储在列表中。问题似乎是 else if 语句中的“i % 60 == 0”,但我不知道为什么

Random r = new Random();
        
        int[] arr = new int[180];
        List<int> MyList = new List<int>();
        int[] array2 = new int[2];

        //intialize random numbers in 60 length array
        for (int i = 0; i < arr.Length; i++)
        {
            arr[i] = r.Next(1, 10);
        }

 int score = 0;
        //looping through arr
        for (int i = 0; i < arr.Length; i++)
        {
            
            if (i % 60 != 0 || i == 0 )
            {                
                score = score + arr[i];
                
                i++;
            }
            else if (i % 60 == 0 && i != 0)
            {
                //adding the values to a list
                MyList.Add(score);
                //resetting score after score is added to the list
                score = 0;
            }
            
        }
        // converting list to my second array
        array2 = MyList.ToArray();

        //printing values in array
        for (int i = 0; i < array2.Length; i++)
        {
            Console.WriteLine(array2[i]);
        }

【问题讨论】:

    标签: c# arrays list loops


    【解决方案1】:

    你原来的循环和条件有几个问题,实际上需要:

    int score = 0;
    for (int i = 0; i < arr.Length; i++)
    {
        score = score + arr[i];
    
        if ((i + 1) % 60 == 0)
        {
            MyList.Add(score);
            score = 0;
        }
    }
    

    但我强烈建议您使用更简单的 LINQ 方法(而不是手动执行所有操作):

    var array2 = new[] 
    {
        arr.Take(60).Sum(),
        arr.Skip(60).Take(60).Sum(),
        arr.Skip(120).Sum()
    };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-06
      • 1970-01-01
      • 2020-12-22
      • 1970-01-01
      • 2018-04-07
      • 1970-01-01
      • 2021-11-25
      • 1970-01-01
      相关资源
      最近更新 更多