如何从Dart中的列表中找到最小值和最大值?

dart - 如何从Dart中的列表中找到最小值和最大值?

我已经尝试了以下代码段。但是它将引发有关类型转换的错误。因为列表具有整数和 double 值的组合。但是 **list.reduce(min)**返回唯一的整数值。因此,您能为这些人提供解决方案吗?提前致谢。
注意-但是,我从用户那里获得了唯一的动态列表。

 final List<dynamic> y = [12, 12, 23.5, 2, 19, 1, 23, 16, 29.7, 32, 45, 68, 23, 21];
 List<num> yValues = y;
 num yMin = yValues.reduce(min);
 num yMax = yValues.reduce(max);

最佳答案

您正在编写List的类型为List<dynamic>。由于minmax仅适用于num类型,因此我们需要将列表中的每个元素cast转换为num,如下所示:

import 'dart:math';

void main() {
  final List<dynamic> y = <dynamic>[12, 12, 23.5, 2, 19, 1, 23, 16, 29.7, 32, 45, 68, 23, 21];
  final yMin = y.cast<num>().reduce(min);
  final yMax = y.cast<num>().reduce(max);
  print(yMin); // 1
  print(yMax); // 68
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

坚果的博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值