c# - 无法将类型 'double' 隐式转换为 'int'

标签 c# arrays sorting variables type-conversion

我是一个初学者,正在经历一些足够简单的挑战,但我似乎无法解决这个问题。代码只是一个用于查找数组中最大和最小数字的函数,即使这并不是一种有效的方法,我也不知道代码从哪里获取 int 。有谁能解释一下吗?

using System;
using System.Linq;
public class Program 
{
    public static double[] FindMinMax(double[] values) 
    {

        double small = values.Min();
        double big = values.Max();

        double result = new double[small, big];

        return result;
    }
}

最佳答案

I have no idea where the code is getting an int from

您在这里要求 (new double[small, big]) 创建一个尺寸为(例如)17.2 × 42.6 的二维(矩形)数组 - 这就是这些尺寸它想要是整数。


我认为您的意思是创建一个向量(从零开始的一维数组),其中两个值作为内容:

double[] result = new double[] {small, big};

尽管我怀疑值元组会更有效地工作,即

public static (double Min, double Max) FindMinMax(double[] values) 
{
    // ...
    return (small, big);
}

您可能还想研究编写一个显式单个循环来检查每个步骤中的最小值和最大值是否是最佳的(可能不是),而不是两次迭代。但只要数据不是很大,就根本不重要。如果它很大,那么您就会进入诸如对数组进行分片并在不同分片上执行并行最小/最大,然后聚合分片结果之类的主题。这里可能还有 SIMD 选项。

关于c# - 无法将类型 'double' 隐式转换为 'int',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59769144/

相关文章:

c# - 为什么命名空间/导入在 c# 和 Razor 之间的工作方式不同?

c# - 我如何从 SqlDataSource asp.net 中的多个表中进行选择

java - 对从文件中读取的数组进行排序

javascript - 如何更改控制台上显示的对象名称?

C++按属性对项目进行排序

mysql - 按升序获取表中的字母数字值

c# - 将“Interop.zkemkeeper.dll”导入到WCF服务时出错

c# - 在 Xamarin Forms 中添加值后 ListView 不刷新

java - 递归返回 i 在 j 中出现的位置数组

javascript - 如何过滤和映射复杂的json数据?