首页 > 解决方案 > 将字符串转换为整数列表

问题描述

我有一个这样的字符串"1, 2, 3, 4, 5, 10, 23, 54"

我可以通过首先将其转换为字符串列表来做到这一点

List<String> list = str.split(",");

然后我必须循环列表并将其转换为 int。
是否可以在一行中将上述字符串转换为 List<int> ?

编辑1:

我试过

List<int> ints = "1,2,3".split(",").map((i) => int.parse(i));

但我得到 'MappedListIterable<String, int>' 不是 'List' 类型的子类型

编辑2:

我找到了解决方案。但我不是很清楚。

List<int> ints = "1,2,3".split(",").map((i) => int.parse(i)).toList();

这解决了问题。但是在 dart 中添加 toList() 和不添加 toList() 有什么区别?有人可以解释一下吗?

标签: dart

解决方案


使用 Map 方法时,它实际上返回一个 MappedIterable(在本例中为 MappedListIterable)(此文档的文档)实例而不是 List,因此您需要将其转换为一个列表实例。

这就是添加toList()起作用的原因,因为它实际上将 MappedListIterable 转换为 List。

List<int> ints = "1,2,3".split(",").map((i) => int.parse(i)).toList();

推荐阅读