Dart搜索,从数据模型列表中添加和删除
您假设这是我的类作为示例代码:Dart搜索,从数据模型列表中添加和删除,dart,collections,Dart,Collections,您假设这是我的类作为示例代码: class SelectedPage { final String username; final String pageProfileImage; SelectedPage(this.username, this.pageProfileImage); } 在这个类中,我想将模型数据添加为SelectedPage,当它不在SelectedPage列表中时,并且当这个模型在列表中时,我应该从列表中删除它,例如此代码不正确的部分 void main()
class SelectedPage {
final String username;
final String pageProfileImage;
SelectedPage(this.username, this.pageProfileImage);
}
在这个类中,我想将模型数据添加为SelectedPage,当它不在SelectedPage列表中时,并且当这个模型在列表中时,我应该从列表中删除它,例如此代码不正确的部分
void main() {
const String pageName = 'my name';
final List<SelectedPage> pages = [];
final SelectedPage newPage =
SelectedPage(pageName, 'assets/images/my_pic.jpg');
pages.add(newPage);
if (pages.where((currentName) => currentName.username.contains(pageName)) !=
null) {
pages.remove(newPage);
print('>>>>>>>>>>>>>> REMOVED');
} else {
pages.add(newPage);
print('>>>>>>>>>>>>>> ADDED');
}
}
class SelectedPage {
final String username;
final String pageProfileImage;
SelectedPage(this.username, this.pageProfileImage);
}
我想在page.selectedPages中搜索“我的名字”。selectedPages即selectedPages类模型数据,如果模型中存在“我的名字”,我应该将其从列表中删除,否则应将其作为模型添加到列表中,您使用它的方式将导致对象始终被删除,因为where将返回一个列表,其中包含您刚刚进行的查询的结果,即使它是一个空列表 因此,如果您想这样做,您需要查询并检查列表是否为空。如果是,那么你没有那个元素,如果没有,那么你有
List query = pages.where((currentName) => currentName.username.contains(pageName)).toList();
if (query.isNotEmpty) {
pages.remove(newPage);
print('>>>>>>>>>>>>>> REMOVED');
} else {
pages.add(newPage);
print('>>>>>>>>>>>>>> ADDED');
}
}
page.selectedPages.map用于什么?如果您想查找某个内容是否存在,请使用contains或where@pskink这就是我们的例子ChangeNotifierSelectablePage@pskinkpage.selectedPages.containspageName不正确,总是添加到列表中。我问您为什么使用list.map方法?您知道什么时候应该使用它吗?@pskink我尝试在列表中逐行搜索,并检查当前保存的模型是否与我的名字相同