在Dart中,可以使用groupBy
方法将List<Event>
转换为Map<DateTime, List<Event>>
。groupBy
方法是collection
包中的一个方法,需要先导入package:collection/collection.dart
。
下面是一个示例代码:
import 'package:collection/collection.dart';
class Event {
DateTime dateTime;
String name;
Event(this.dateTime, this.name);
}
void main() {
List<Event> events = [
Event(DateTime(2022, 1, 1), 'Event 1'),
Event(DateTime(2022, 1, 1), 'Event 2'),
Event(DateTime(2022, 1, 2), 'Event 3'),
Event(DateTime(2022, 1, 3), 'Event 4'),
Event(DateTime(2022, 1, 3), 'Event 5'),
];
Map<DateTime, List<Event>> eventMap = groupBy(events, (Event event) => event.dateTime);
eventMap.forEach((key, value) {
print('$key: $value');
});
}
在上面的代码中,我们定义了一个Event
类,包含dateTime
和name
属性。然后创建了一个包含多个Event
对象的events
列表。
通过调用groupBy
方法,将events
列表按照dateTime
属性进行分组,得到一个Map<DateTime, List<Event>>
类型的结果。
最后,我们使用forEach
方法遍历eventMap
,打印每个日期对应的事件列表。
这是一个简单的示例,你可以根据实际需求进行修改和扩展。
领取专属 10元无门槛券
手把手带您无忧上云