在 Flutter 中从 List<MyList> 中获取不同的元素

Get distinct element from a List<MyList> in Flutter

您好,感谢您的支持,如果有人回答:

我有一个从 mysql 查询中获得的列表,它 returns 我列表中的几个元素。我在 Flutter 中收到这样的消息:

[0]:ListaTotPaises
gravedad:"3"
pais:"Colombia"
total:"1"

[1]:ListaTotPaises
gravedad:"2"
pais:"Colombia"
total:"1"

[2]:ListaTotPaises
gravedad:"2"
pais:"Spain"
total:"2"

我想从这个列表中得到不同的“派”。在这种情况下,我想使用值“Colombia”和“Spain”而不是两次 Colombia。

您可以使用 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);
  }
});

另一种使用retainWhere

的简单解决方案
final sets = Set(); 
myList.retainWhere((e) => sets.add(e.pais));