gpt4 book ai didi

flutter :检查列表中是否已存在对象

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

我有以下代码

class FavoriteItem {
String headline;
String content;
String link;
String publisheddate;

FavoriteItem({this.headline, this.content, this.link, this.publisheddate});

toJSONEncodable() {
Map<String, dynamic> m = new Map();

m['headline'] = headline;
m['content'] = content;
m['link'] = link;
m['publisheddate'] = publisheddate;

return m;
}
}


class FavoriteList {
List<FavoriteItem> items;

FavoriteList() {
items = new List();
}

toJSONEncodable() {
return items.map((item) {
return item.toJSONEncodable();
}).toList();
}
}

我已经开始了这样的类(class)
final FavoriteList favlist = new FavoriteList();我填充 favlist使用来自 json 的以下代码
if (items != null) {
(items as List).forEach((item) {
final favoriteitem = new FavoriteItem(headline: item['headline'], content: item['content'], link: item['link'], publisheddate: item['publisheddate']);
favlist.items.add(favoriteitem);
});
}

问题

我想要做的是检查对象是否 favoriteitem已存在于 favlist添加之前。

我尝试使用 -
favlist.items.contains favlist.items.indexof但没有用

我是 flutter/Dart 的新手,有人可以帮我吗

最佳答案

favlist.items.containsfavlist.items.indexof不工作,因为我假设您正在检查 favoriteitem存在(它永远不会存在,因为它是您刚刚创建的全新对象)。我建议通过一些唯一标识符进行检查。在不太了解您的项目的情况下,我建议如下:

假设您的链接字段对于每个收藏项都是唯一的,以下内容应该会有所帮助:

//this is your new created favoriteitem to check against
final favoriteitem = new FavoriteItem(headline: item['headline'], content: item['content'], link: item['link'], publisheddate: item['publisheddate']);

//find existing item per link criteria
var existingItem = items.firstWhere((itemToCheck) => itemToCheck.link == favoriteitem.link, orElse: () => null);

existingItemnull ,那么您的列表中不存在与该链接匹配的任何内容,否则它将返回与该链接匹配的第一个项目。

关于 flutter :检查列表中是否已存在对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58454207/

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