📅  最后修改于: 2023-12-03 15:14:36.511000             🧑  作者: Mango
在 Dart 中,我们可以使用 where
过滤器函数按照对象属性值筛选数据集合。下面将介绍如何使用 where
进行按属性过滤。
Iterable<T> where(bool test(T element))
考虑一个简单的 Person
类:
class Person {
String name;
int age;
Person(this.name, this.age);
}
假设我们有一个 List<Person>
的数据集并且我们要筛选年龄大于 25
的人,可以使用以下代码:
void main() {
final people = [
Person('Alice', 23),
Person('Bob', 28),
Person('Charlie', 31),
Person('David', 22),
Person('Emily', 26),
];
final result = people.where((person) => person.age > 25);
print(result);
// Output: (Person: Bob, age: 28), (Person: Charlie, age: 31), (Person: Emily, age: 26)
}
在上面的代码中,我们使用 where
函数并传递一个匿名函数作为参数来进行筛选。匿名函数接收一个元素并返回一个 bool
值,用于测试该元素是否符合条件。在本例中,匿名函数使用 person.age > 25
来测试年龄是否大于 25。
我们可以使用链式调用来对数据进行多重过滤。例如,我们可以在上面的示例代码中添加一个条件来过滤掉年龄小于 30 的人:
final result = people.where((person) => person.age > 25).where((person) => person.age < 30);
在 Dart 中,使用 where
过滤器函数来按属性过滤数据集合是一种非常有用的技术。通过使用此函数以及链式调用来组合条件,我们可以筛选出满足我们要求的数据集合。