filtrar no dart #41
-
salve galera boa tarde, é uma duvida bem de iniciante mas estou tendo um problema, no codigo abaixo eu simulei o problema que estou tendo. class myObj {
final String name;
final List<String> team;
myObj ({
required this.name,
required this.team,
});
}
void main() {
List<myObj> obj = [
myObj(name: "Name 1", team: ['1', '2']),
myObj(name: "Name 2", team: ['2']),
myObj(name: "Name 3", team: ['3']),
];
List<String> filtersTeams = ['1', '3'];
List<myObj> filteredList = obj // filtro nao esta funcionando
.where((e) => filtersTeams.contains(e.team))
.toList();
filteredList.forEach((e) => print(e.name));
}
eu quero salvar dentro da minha lista filteredList todos os objetos que no atributo team tenha pelo menos 1 dos itens que tem dentro de filtersTeams no caso teria que ter salvar os seguintes dados na filteredList |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 4 replies
-
Olá. |
Beta Was this translation helpful? Give feedback.
-
Olá @Lanysc, você pode fazer assim: class myObj {
final String name;
final List<String> team;
myObj ({
required this.name,
required this.team,
});
}
void main() {
List<myObj> obj = [
myObj(name: "Name 1", team: ['1', '2']),
myObj(name: "Name 2", team: ['2']),
myObj(name: "Name 3", team: ['3']),
];
List<String> filtersTeams = ['1', '3'];
List<myObj> filteredList = [];
for (var item in obj) {
if (item.team.any((team) => filtersTeams.contains(team))) {
filteredList.add(item);
}
}
filteredList.forEach((e) => print(e.name));
} O seu exemplo não está dando certo, pois |
Beta Was this translation helpful? Give feedback.
Olá @Lanysc, você pode fazer assim:
O seu exemplo não está dando certo, pois
contains
verifica se uma lista contém um elemento e não um…