如何从列表中获取特定数据

时间:2019-08-26 11:00:24

标签: flutter dart

我有一种方法,可以从Firebase数据库中获取所有用户,然后将所有用户存储在列表中。 假设我的清单是:

    user1 = User(
    id: 1
    name: "john"
    car: false
   )

    user2 = User(
    id: 2
    name: "kim"
    car: true
    )

 userList = [user1,user2]

如何根据名称获取用户的ID?

2 个答案:

答案 0 :(得分:2)

最简单的方法之一是使用forEach(),它需要一个函数作为参数:

class User{
  final int id;
  final String name;
  final bool car;

  User({this.id, this.name, this.car});
}

void main() {
  User user1 = User(
    id: 1, 
    name: "john", 
    car: false
  );

  User user2 = User(
    id: 2, 
    name: "kim", 
    car: true
  );

  List<User> userList = [user1,user2];

  userList.forEach((user){
    if(user.name == "john")
      print("ID: ${user.id}");
  });
}

但是您还有更多选择,请查找此列表Top 10 Array utility methods you should know (Dart)

这样您就可以得到所有的约翰裤:

List<User> johns = userList.where((user) => user.name == "jhon");

答案 1 :(得分:1)

您可以使用列表中的where过滤掉它。示例:

 var userList = [user1,user2];

 var kimList =  userList.where((f) => f.name == 'kim').toList();

 kimList.forEach((u) => print( '${u.name } - ${u.id}')); // will contain all the users where name is kim

参考