首页 > 解决方案 > 飞镖流/列表

问题描述

如果还没有具有该名称的用户,我想将用户添加到我的列表中。其实我一般想避免重复。因为我没有找到类似 myList.distinct(User.name) 或类似的东西,所以我使用 for for 循环和 if else 来完成它:

myList.add(customUser);
for (User user in myList) {
  if (user.name == customUser.name)
    myList.remove(user);
}

我只是想知道是否有更聪明的方法可以在飞镖中解决这个问题,例如使用流。但我什么也没找到。

标签: listfilterstreamdart

解决方案


您可以使用 aSet而不是列表。一个集合只存储唯一值。

为此,如果您的值是自定义类实例 ( User),则您的User类需要实现operator ==aSet才能正常工作。

有关更多详细信息,请参阅集合如何确定 dart 中的两个对象相等?


推荐阅读