0

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

我有一个从 mysql 查询中获得的列表,它返回列表中的几个元素。我在 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"

我想从这个列表中得到不同的“pais”。在这种情况下,我想使用值“哥伦比亚”和“西班牙”,而不是两次哥伦比亚。

4

2 回答 2

0

您可以使用mapto get allpais然后调用toSet删除重复项,最后调用toList.

myList.map((e) => e.pais).toSet().toList();

你也可以使用map++方法来解决这个问题containsforEach

final allPais = myList.map((e) => e.pais);
final distinctPais = [];
allPais.forEach((e) {
  if (!distinctPais.contains(e)) {
    distinctPais.add(e);
  }
});
于 2021-07-04T13:22:12.063 回答
0

另一个简单的解决方案使用retainWhere

final sets = Set(); 
myList.retainWhere((e) => sets.add(e.pais));
于 2021-07-30T04:54:27.497 回答