gpt4 book ai didi

flutter - 如何从 flutter 中的对象列表中删除重复项

转载 作者:行者123 更新时间:2023-12-05 03:34:32 25 4
gpt4 key购买 nike

我的代码中有一个列表,其中包含 contactInfo 的对象列表,例如

myContactsModel(
displayName: 'Alex',
phoneNumbers: '+4412318293',
avatar: avatar)
myContactsModel(
displayName: 'Alex',
phoneNumbers: '+4412318293',
avatar: avatar)

这些对象存储在一个列表中。如何确保列表中不存在具有相同名称和编号的重复项

最佳答案

你需要

  • 重写相等性 == 运算符,
  • 这又需要覆盖 hashCode
  • 然后使用 Set 来存储唯一项。

示例工作代码

class ContactsModel {
String displayName;
String phoneNumbers;
String avatar;
ContactsModel(this.displayName, this.phoneNumbers, this.avatar);

@override
String toString() {
return """
{
'displayName': $displayName,
'phoneNumbers': $phoneNumbers,
'avatar': $avatar,
}""";
}

@override
bool operator ==(other) {
if (other is! ContactsModel) {
return false;
}
return displayName == other.displayName &&
phoneNumbers == other.phoneNumbers;
}

@override
int get hashCode => (displayName + phoneNumbers).hashCode;
}

void main() {

var models = <ContactsModel>{};

models.add(
ContactsModel('Alex', '+4412318293', 'avatar1'),
);

models.add(
ContactsModel('Alex', '+4412318293', 'avatar1'),
);

print(models);
}

输出:

{{
'displayName': Alex,
'phoneNumbers': +4412318293,
'avatar': avatar1,
}}

DartPad 中尝试.

信息性答案在这里How does a set determine that two objects are equal in dart? .

关于flutter - 如何从 flutter 中的对象列表中删除重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70132374/

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