【问题标题】:Dart Stream / List飞镖流/列表
【发布时间】:2018-10-15 05:00:13
【问题描述】:

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

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

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

【问题讨论】:

    标签: list filter stream dart


    【解决方案1】:

    您可以使用Set 代替列表。一个集合只存储唯一值。

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

    更多详情见How does a set determine that two objects are equal in dart?

    【讨论】:

    • “==”和“hashCode”。如果有一个,那么总是另一个。
    • @RandalSchwartz 你当然是对的。链接的问题应提供此信息及更多信息。
    • 是的,我在 Smalltalk 的日子里就有这种感觉。我在 1982 年和 1983 年使用的是 ST80 图像。:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-14
    • 2020-09-29
    • 2021-10-01
    • 2021-10-12
    • 1970-01-01
    • 1970-01-01
    • 2018-12-29
    相关资源
    最近更新 更多