如何在颤动中计算列表的特定长度

How to count a specific length of a list in flutter

我创建了一个任务列表。我想这样计算任务长度:

ongoing tasks = task list length - isDone tasks

我想找到本例中的 isDone 个任务计数。至于图片isDone tasks = 2.

这些是我创建的 类。

class Task {
  final String taskName;
  bool isDone;

  Task({required this.taskName, this.isDone = false});

  void toggleDone() {
    isDone = !isDone;
  }
}

.......

class Taskdata with ChangeNotifier {
  final List<Task> _tasks = [];

  UnmodifiableListView<Task> get tasks {
    return UnmodifiableListView(_tasks);
  }

  int get tasksCount {
    return _tasks.length;
  } 
  
}

您可以使用 where 函数根据特定条件过滤列表:

 int get tasksCount {
    List<Task> tasksLeft = _tasks.where((task) => !task.isDone).toList();  //where returns an iterable so we convert it back to a list
    return tasksLeft.length;  
  } 

如果出现问题,您可能需要将 List 转换为 Iterable

int get doneCount {
    Iterable<Task> tasksDone = _tasks
        .where((task) => task.isDone)
        .toList(); //where returns an iterable so we convert it back to a list
    return tasksDone.length;
  }