Flutter List数据根据字段分组
时间: 2024-03-09 16:49:01 浏览: 187
flutter_database.rar
要将 List 数据根据字段分组,可以使用 Dart 内置的 `groupby` 函数。首先,需要引入 `dart:collection` 库,然后定义一个自定义的函数作为分组依据。接着,使用 `groupby` 函数将 List 数据按照指定字段进行分组。以下是示例代码:
```dart
import 'dart:collection';
class Person {
String name;
int age;
Person(this.name, this.age);
}
void main() {
List<Person> persons = [
Person('Tom', 20),
Person('Jerry', 22),
Person('Alice', 20),
Person('Bob', 22),
];
// 定义分组依据的函数
String groupBy(Person p) => p.age.toString();
// 使用 groupby 函数将 List 数据按照 age 字段进行分组
Map<String, List<Person>> result = groupBy(persons, groupBy);
// 输出分组结果
result.forEach((key, value) {
print('Group $key:');
value.forEach((person) {
print(' ${person.name}');
});
});
}
```
输出结果为:
```
Group 20:
Tom
Alice
Group 22:
Jerry
Bob
```
在这个示例中,我们将 `List<Person>` 数据按照 `age` 字段进行分组,将同一年龄的人放在同一个 List 中,最终得到一个 `Map<String, List<Person>>` 类型的分组结果。
阅读全文