Dart // Flutter:如何根据输入内容从列表中删除项目

问题描述

在我的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数据库创建一个飞镖列表。 Logcat打印:

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

现在我要删除isFavorite等于0但不知道如何的所有条目。此新列表应使用其他名称

解决方法

我认为您的问题本身就有答案!
使用removeWhere函数。

List favorite = [{'id': 0,'isFavorite': 0},{'id': 1,'isFavorite': 1},{'id': 2,{'id': 3,{'id': 4,{'id': 5,'isFavorite': 1}];
  
favorite.removeWhere((item) => item['isFavorite'] == 0);
print(favorite);
  

输出:

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

引用:https://api.dart.dev/stable/2.9.3/dart-core/List/removeWhere.html

希望能解决您的情况!