gpt4 book ai didi

dart - 如果列表中不包含对象,则将其添加到列表中

转载 作者:IT王子 更新时间:2023-10-29 06:51:18 27 4
gpt4 key购买 nike

我试图将对象添加到列表中,前提是它还没有被添加......像这样:

  for (var interest in poll.poll.interests) {
InterestDrop n = new InterestDrop(interest, false);
print(interest);
print(dropInterestsList);
print(dropInterestsList.contains(n));
if (!(dropInterestsList.contains(n))){
dropInterestsList.add(n);

}
}

但这总是返回 false 并添加对象,即使它已经存在......如何解决这个问题?

回答:

class InterestDrop {
String name;
bool isClicked;

InterestDrop(this.name, this.isClicked);

bool operator == (o) => o is InterestDrop && name == o.name && isClicked == o.isClicked;
int get hashCode => hash2(name.hashCode, isClicked.hashCode);
}

最佳答案

您需要覆盖 equality operator在您的自定义类中。

来自文档:

The default behavior for all Objects is to return true if and only if this and other are the same object.

因此,只有当您的数组包含您正在比较的确切对象时,您的 contains 方法才会返回 true。

关于dart - 如果列表中不包含对象,则将其添加到列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54148089/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com