list - 如何在flutter / Dart的List中的where子句中运行IN条件?
问题描述
我正在尝试从具有 IN 条件的列表中恢复数据。我该怎么做这样的事情?谢谢
class Attractive
{
String name;
String type;
Attractive({this.name,this.type});
}
List<Attractive> attraction=[];
attraction.add(name:"Everest",type:"mountain");
attraction.add(name:"Colorado",type:"river");
attraction.add(name:"Kilimanjaro",type:"mountain");
attraction.add(name:"Yellowstone",type:"park");
var listAttractive = attraction.where((element) => element.type in ("mountain","river"));
listAttractive.forEach((item){
print(item.name);
});
解决方案
该in
关键字用作Iterable
在 for 循环中循环的方式。例如:
for (int i in [1, 2, 3]) {
print(i);
}
它不是对集合是否包含项目的布尔测试。您可以contains
在包含要检查的所有元素类型的集合上使用该方法。
class Attractive {
String name;
String type;
Attractive({required this.name, required this.type});
}
void main() {
List<Attractive> attraction = [];
attraction.add(Attractive(name: "Everest", type: "mountain"));
attraction.add(Attractive(name: "Colorado", type: "river"));
attraction.add(Attractive(name: "Kilimanjaro", type: "mountain"));
attraction.add(Attractive(name: "Yellowstone", type: "park"));
var listAttractive = attraction
.where((element) => {'mountain', 'river'}.contains(element.type));
listAttractive.forEach((item) {
print(item.name);
});
}
推荐阅读
- oracle - 错误数量或类型的参数错误 oracle 表单
- ios - iOS NSCoreDataCoreSpotlightDelegate,如何重新索引所有项目
- javascript - Node.js - 如何使用 MySQL 查询从 for 循环中返回带有数组的回调?
- codenameone - 使用代号一组件检查器树中的验证按钮
- android - Android-manifest 中的编码类型会导致以下问题:查找默认活动和编译过程
- javascript - 带有 jquery 验证的动态添加 name=name[] 的 Html 标记
- angular - _co.openSignup 不是函数
- android - Room - 只读取一次数据时不需要 LiveData?
- python - python asn1结构无法设置字段值
- c# - 此代码中反射的输出类型是什么