飞镖//长笛:如何根据条目的内容从列表中删除项目



在我的Flutter应用程序中,我有一个数据库,可以跟踪用户喜欢和不喜欢的项目。我有功能

List finalFavoritesList;
void queryDb() async {
final db = await database;
final allRows = await db.query(TABLE_FAVORITE);
List finalFavoritesList = allRows.toList(growable: true);
print(finalFavoritesList);
}

根据我的理解,它从sqflite数据库创建了一个dart列表。Logcat打印:

[{id: 0, isFavorite: 0}, {id: 1, isFavorite: 1}, {id: 2, isFavorite: 0}, {id: 3, isFavorite: 1}, {id: 4, isFavorite: 0}, {id: 5, isFavorite: 1}] 

现在我想删除每个条目,其中isFavorite等于0,但我不知道如何删除。这个新列表应该有另一个名称。

我想你的问题本身就有答案了!
使用removeWhere函数。

List favorite = [{'id': 0, 'isFavorite': 0}, {'id': 1, 'isFavorite': 1}, {'id': 2, 'isFavorite': 0}, {'id': 3, 'isFavorite': 1}, {'id': 4, 'isFavorite': 0}, {'id': 5, 'isFavorite': 1}];

favorite.removeWhere((item) => item['isFavorite'] == 0);
print(favorite);

输出:

[{id: 1, isFavorite: 1}, {id: 3, isFavorite: 1}, {id: 5, isFavorite: 1}]

参考:https://api.dart.dev/stable/2.9.3/dart-core/List/removeWhere.html

希望这能解决你的案子!

最新更新