Flutter/Dart 如何将两个独立列表转换为自定义Task对象列表
首先先修正你代码中的几处笔误:
- Task类定义中
bool isDone后缺少分号,修正后如下:
class Task { String name; bool isDone; Task({this.name,this.isDone = false}); }
- 待转换的两个列表重名了,布尔类型的列表建议命名为
taskStatus,同时你期望结果中第三个Task的name字段存在笔误,应为go to gym。
实现方式
方式1:基础for循环实现(易理解)
先判断两个列表长度是否一致,避免下标越界,再遍历生成对象列表:
List<String> taskNames = ['buy milk','go to school','go to gym']; List<bool> taskStatus = [true,false,true]; if (taskNames.length != taskStatus.length) { throw Exception('两个列表长度不匹配,无法转换为Task对象列表'); } List<Task> taskList = []; for (int i = 0; i < taskNames.length; i++) { taskList.add(Task(name: taskNames[i], isDone: taskStatus[i])); }
方式2:List.generate实现(代码更简洁)
如果已经确定两个列表长度一致,可以直接用List.generate一行完成转换:
List<Task> taskList = List.generate(taskNames.length, (index) => Task( name: taskNames[index], isDone: taskStatus[index] ));
内容的提问来源于stack exchange,提问作者Divit Vaghani
相关产品推荐
相关产品推荐

