Dart根据某个属性的值将列表拆分为子列表?



我有一个事件列表,其中有一个DateTime属性,我想使这个列表的子列表基于年。是否有一种方法可以将我的主事件列表分成子列表,以便在每个子列表中,每个事件都有相同的年份?所以我最终会得到一个包含所有2020年事件的子列表,一个包含所有2021年事件的子列表,等等。

List<DayTasks>,其中DayTasks定义为:

class DayTasks{
List<Task> _tasks = [];
final DateTime _date;
}

List<Task>在这里不受关注,我想对List<DayTasks>执行此操作。

您可以使用groupBy来获取基于日期的子列表。假设您有一个DayTasks列表

final dayTaskList = <DayTasks>[];

您可以使用以下命令获取基于同一年的DayTasks分组列表:

final groupedList = groupBy(dayTaskList, (DayTasks dayTasks) => DateTime(dayTasks._date.year)).entries.toList();

这个分组列表可用于遍历创建的子列表。

最新更新