You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter/Dart 如何将两个独立列表转换为自定义Task对象列表

首先先修正你代码中的几处笔误:

  1. Task类定义中bool isDone后缺少分号,修正后如下:
class Task {
  String name;
  bool isDone;
  Task({this.name,this.isDone = false});
}
  1. 待转换的两个列表重名了,布尔类型的列表建议命名为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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 07:51:01