[英]how to sort list by `enum` in Dart?
如何通过 dart 中的Object
中的enum
变量对List<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);
}
它假定您的枚举以正确的排序顺序声明。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.