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>
。由于min
和max
仅适用于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