我有一种方法,可以从Firebase数据库中获取所有用户,然后将所有用户存储在列表中。 假设我的清单是:
user1 = User(
id: 1
name: "john"
car: false
)
user2 = User(
id: 2
name: "kim"
car: true
)
userList = [user1,user2]
如何根据名称获取用户的ID?
答案 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
参考