Получить отдельный элемент из списка в Flutter

#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));