gpt4 book ai didi

arrays - 如何不在列表 Dart 中复制相同的项目?

转载 作者:行者123 更新时间:2023-12-03 02:45:42 26 4
gpt4 key购买 nike

我创建了一个 listView 和按钮,当我单击该按钮时,它会向 listView 添加一个项目。

问题是我实际上不想在列表中重复相同的项目。

我试过 .contains 方法,但没有用。

我想要一个好的解决方案,

最佳答案

有不同的方法可以实现这一点:

1) 迭代列表并检查是否每个元素都没有
您认为相等的属性:

items = [Item(id: 1), Item(id: 2)];
newItem = Item(id: 2);
if (items.every((item) => item.id != newItem.id)) {
items.add(newItem);
}

2) 使用 contains()并覆盖 == operator (也覆盖 hashCode)
在具有您认为相等的属性的对象类中。
items = [Item(id: 1), Item(id: 2)];
newItem = Item(id: 2);
if (!items.contains(newItem)) {
items.add(newItem);
}

// inside Item class
@override
bool operator ==(other) {
return this.id == other.id;
}

@override
int get hashCode => id.hashCode;

3) 而不是 List使用 Set ,其中每个元素只能出现一次。它的默认实现是 LinkedHashSet跟踪订单。

关于arrays - 如何不在列表 Dart 中复制相同的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58554667/

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