list - 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();
此分组列表可用于遍历创建的子列表。
推荐阅读
- linux-device-driver - Linux 设备树:了解对已删除节点的引用如何工作?
- wordpress - 如何在 wordpress 中使用 Rest API 更新 ACF 字段值?
- java - 将 APM 部分下的 JVM 列出名称到 ELK
- c - while 循环在从远程服务器接收数据时挂在 read() 上。C型插座
- django - 错误:Someip:port 不是有效的端口号或地址:端口对
- typescript - 使用 Typescript 在 Vue JS 3 中键入浏览器历史记录
- http - EACCESS ERROR,当试图在 Android 应用程序中获取 OpenHAB(3) 字符串项的状态时?
- reactjs - 当跳过标志变为假时,Apollo 客户端 useQuery 正在跳过但不重新运行查询?
- reactjs - 通过 Provider React 传递对象
- html - 基于复选框的角度禁用输入