如何在Dart中按`enum`对列表进行排序?

如何在飞镖中List<Object>enum变量排序Object

class Task {
final String name;
final Priority priority;
}

enum Priority {
first,
second,
third
}

List<Task> tasks; // <-- how to sort this list by its [Priority]?

回答

尝试这个:

class Task {
  final String name;
  final Priority priority;
  Task(this.name, this.priority);
  @override toString() => "Task($name, $priority)";
}

enum Priority {
  first,
  second,
  third
}

extension on Priority {
  int compareTo(Priority other) =>this.index.compareTo(other.index);
}

List<Task> tasks = [
  Task('zort', Priority.second),
  Task('foo', Priority.first),
  Task('bar', Priority.third),
];

main() {
  tasks.sort((a, b) => a.priority.compareTo(b.priority));
  print(tasks);
}

它假设您的枚举以正确的排序顺序声明。


以上是如何在Dart中按`enum`对列表进行排序?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>