在Dart中,可以使用collection
库中的groupListsBy
函数来根据多个对象的相同值合并这些对象。groupListsBy
函数接受一个列表和一个键提取函数作为参数,并返回一个Map
,其中键是提取函数应用于列表中每个对象的结果,值是具有相同键的对象列表。
以下是一个示例代码,演示如何使用groupListsBy
函数合并具有相同值的对象:
import 'package:collection/collection.dart';
class Person {
final String name;
final int age;
Person(this.name, this.age);
}
void main() {
List<Person> persons = [
Person('Alice', 25),
Person('Bob', 30),
Person('Charlie', 25),
Person('Dave', 30),
];
Map<int, List<Person>> mergedPersons = groupListsBy(persons, (person) => person.age);
mergedPersons.forEach((age, persons) {
print('Age $age:');
persons.forEach((person) {
print('- ${person.name}');
});
});
}
输出结果为:
Age 25:
- Alice
- Charlie
Age 30:
- Bob
- Dave
在上述示例中,我们定义了一个Person
类,具有name
和age
属性。然后,我们创建了一个persons
列表,其中包含了四个Person
对象。我们使用groupListsBy
函数根据age
属性将这些对象分组,并将结果存储在mergedPersons
变量中。最后,我们遍历mergedPersons
,打印每个年龄组的人员名单。
请注意,这只是一个简单的示例,用于演示如何合并具有相同值的对象。在实际应用中,您可能需要根据自己的需求进行适当的修改和扩展。
推荐的腾讯云相关产品:腾讯云函数(云原生无服务器函数计算服务),详情请参考腾讯云函数产品介绍。
领取专属 10元无门槛券
手把手带您无忧上云