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

Posted

技术标签:

【中文标题】Dart // Flutter:如何根据条目的内容从列表中删除项目【英文标题】:Dart // Flutter: How to remove Items from List depending on content of entry 【发布时间】:2020-09-13 12:36:02 【问题描述】:

在我的 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 但我不知道如何。这个新列表应该有另一个名字。

【问题讨论】:

【参考方案1】:

我认为你的问题本身就有答案! 使用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

希望能解决您的问题!

【讨论】:

以上是关于Dart // Flutter:如何根据条目的内容从列表中删除项目的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Dart/Flutter 中根据类标签和属性名称抓取数据

如何修复 flutter_google_places_autocomplete.dart 的错误?

如何降级 Flutter SDK (Dart 1.x)

Flutter / Dart:地图列表与小部件列表?哪个更好?

4.解析 — Flutter工程解析(如何运行写初始化一个Dart文件)

flutter:根据不同的状态路由到不同的页面