c# - 无法将类型“double”隐式转换为“int”
问题描述
我是一个初学者,正在经历一些足够简单的挑战,我似乎无法弄清楚这个问题。代码只是一个用于查找数组中最大和最小数字的函数,即使这不是一种有效的方法,我也不知道代码是从哪里得到一个 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;
}
}
解决方案
我不知道代码从哪里得到一个 int
您在这里要求 ( 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 选项。
推荐阅读
- linux - linux:在每个输出行的末尾打印字符串
- bash - Bash 脚本的行为出乎意料/奇怪
- node.js - 在生产环境中部署 Outlook Web 插件?
- javascript - Discord.js 关卡系统
- python-3.x - 如何尝试文件中的行是否与Python中其他文件中的行匹配
- android - Inside of Worker class call BroadcastReceiver class
- c# - 如何从另一个列表中的列表中获取总和作为带有 linq 的属性
- r - 有没有办法在不下载所有 HTML 的情况下运行 Rcrawler?
- javascript - 将属性映射到另一个属性中的对应值
- logstash - Logstash 中的 Foreach 消息