#list #flutter #duplicates #items #maplist
Вопрос:
Привет и спасибо за поддержку, если кто-нибудь ответит:
У меня есть список, который я получаю из запроса mysql, и он возвращает несколько элементов в моем списке. Я получаю что-то подобное в трепете:
[0]:ListaTotPaises
gravedad:"3"
pais:"Colombia"
total:"1"
[1]:ListaTotPaises
gravedad:"2"
pais:"Colombia"
total:"1"
[2]:ListaTotPaises
gravedad:"2"
pais:"Spain"
total:"2"
Я хочу получить несколько разных «паев» из этого списка. В этом случае я хочу работать со значениями «Колумбия» и «Испания», а не дважды Колумбия.
Ответ №1:
Вы могли бы использовать map
, чтобы получить все pais
, затем позвонить toSet
, чтобы удалить дубликаты и, наконец, позвонить toList
.
myList.map((e) => e.pais).toSet().toList();
Вы также можете использовать map
contains
forEach
метод для решения этой проблемы:
final allPais = myList.map((e) => e.pais);
final distinctPais = [];
allPais.forEach((e) {
if (!distinctPais.contains(e)) {
distinctPais.add(e);
}
});
Ответ №2:
Еще одно простое решение с использованием retainWhere
final sets = Set();
myList.retainWhere((e) => sets.add(e.pais));