字符串包含在列表属性的内部

时间:2019-07-31 09:58:49

标签: flutter dart

我想显示联系人列表中具有属性[id,名称,电话,电话号码]的id ='asdf-123'的联系人。

我可以做到

bool isContainId = false;
String testId = 'asdf-123';

contacts.foreach((contact) {
  if (contact.id == testId) {
    isContainId = true;
  }
});

但是,还有什么更好的方法可以做到。类似于.contains。请帮忙!。

1 个答案:

答案 0 :(得分:2)

Contains无法在dart中使用自定义模型,您必须遍历每个对象才能进行这种操作。

bool isContainId = false;
String testId = 'asdf-123';

isContainId = contacts.firstWhere((contact)=> contact.id == testId, orElse: (){isContainId = false;}) != null;

更新:

class CustomModel {
  int id;
  CustomModel({this.id});
}

void main() {
  List<CustomModel> all = [];
  for (var i = 0; i < 4; i++) {
    all.add(CustomModel(id: i));
  }
  bool isContainId = false;
  isContainId = all.firstWhere((contact)=> contact.id == 5, orElse: (){isContainId = false;}) != null;
  print(isContainId);
}