通过规范化(不使用 Linq)修改双精度数组的传入数组的过程

本文关键字:数组 修改 双精度 过程 Linq 规范化 | 更新日期: 2023-09-27 17:56:25

我已经写下了一个过程的代码,该过程通过规范化来修改传入的双精度数组。为了规范化数字数组,我必须将每个数字除以数组中的最大值。但是,我的代码迫使我实现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;程序顶部实施的情况下实现相同的解决方案。

通过规范化(不使用 Linq)修改双精度数组的传入数组的过程

首先遍历数组并获取最大值(确保先检查数组中是否有项目,因此请检查numbers.Length > 0):

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

只需通过迭代数组找到最大值

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;
    }
}