【问题标题】:Procedure which modifies incoming array of double by Normalizing (without using Linq)通过规范化(不使用 Linq)修改传入的 double 数组的过程
【发布时间】:2016-11-14 11:35:10
【问题描述】:

我已经写下了一个过程的代码,该过程通过规范化来修改传入的双精度数组。为了标准化数字数组,我必须将每个数字除以数组中的最大值。但是,我的代码强制我实现System.Linq

这是我的代码:

public void Test9(double[] numbers)
{
    double MaximumNumber = numbers.Max();
    for (int i = 0; i < numbers.Length; i++)
    {
        numbers[i] = numbers[i] / MaximumNumber;
    }
}

我的问题,如何在程序顶部不实现using System.Linq; 的情况下实现相同的解决方案。

【问题讨论】:

    标签: c# arrays linq procedures


    【解决方案1】:

    遍历数组,先取最大值(一定要先检查数组中是否有项目,所以检查numbers.Length &gt; 0):

    double max = numbers[0];
    
    for (int i = 1; i < numbers.Length; i++)
    {
        if (numbers[i] > max)
        {
            max = numbers[i];
        }
    }
    

    【讨论】:

      【解决方案2】:

      通过迭代数组找到最大值

      public void Test9(double[] numbers)
      {
          // Find the maximum without linq
          double maxNumber = double.MinValue;
          for (int i = 0; i < numbers.Length; i++)
          {
             if(numbers[i] > maxNumber) 
                maxNumber = numbers[i];
          }
      
          for (int i = 0; i < numbers.Length; i++)
          {
              numbers[i] = numbers[i] / maxNumber;
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-09-23
        • 1970-01-01
        • 2016-12-28
        • 2011-01-21
        • 2012-06-04
        • 2020-05-03
        • 2015-05-19
        相关资源
        最近更新 更多