Flutter - 根据公共字符串值对对象列表进行分组

问题描述 投票:0回答:1

我有这个 Group 对象

class Group {
      final String dateFormatted;
      final List<Event> events;
    
      Group({required this.dateFormatted, required this.events});
    }

我需要折叠该组,以便所有具有共同 dateFormatted 的组都将合并到同一组中,并使用该数据创建一个新的组对象。

我在当前结构的屏幕上遇到以下问题

enter image description here

flutter collections
1个回答
0
投票

这里如何对常见的日期事件进行分组

List<Group> mergeGroups(List<Group> groups) {


// Create a map to group events by dateFormatted
  final Map<String, List<Event>> groupedEvents = {};

  for (var group in groups) {
    if (!groupedEvents.containsKey(group.dateFormatted)) {
      groupedEvents[group.dateFormatted] = [];
    }
    groupedEvents[group.dateFormatted]!.addAll(group.events);
  }

  // Convert the map back to a list of Group objects
  return groupedEvents.entries
      .map((entry) => Group(dateFormatted: entry.key, events: entry.value))
      .toList();
}
© www.soinside.com 2019 - 2024. All rights reserved.