如何在 dart/Flutter 中将 List<Item> 转换为 Map<Datetime, List<Item>>

How can I convert List<Item> to Map<Datetime, List<Item>> in dart / Flutter

我有一个定义的待办事项列表,例如:

Todo{
 Datetime datetime;
 String task;
}

列出待办事项 = [todo1, todo2,...]

我需要将其转换为类型为 Map<Datetime, List<String>> 的地图,但在待办事项列表中,我有一些使用相同日期时间的待办事项,所以当我使用如下代码时:

todos.forEach((todo) => map2[todo.datetime] = todo.task);如果key相同则替换下一个todo

很抱歉,如果这是一个愚蠢的问题,我已经在 Google 上进行了搜索,但没有找到任何内容。 谢谢, 洪PT.

试试这个

todos.forEach((todo) => map2[todo.datetime] = map2[todo.datetime] == null ? [...map2[todo.datetime], todo.task] : [todo.task]);