根据构造函数参数对飞镖列表进行排序

时间:2019-07-26 20:15:09

标签: arrays algorithm sorting flutter dart

我已经定义了一个这样的类,

class Person {
  final int id,
  final String name,
  final String email,
  final int age,

  Person({
    this.id,
    this.name,
    this.email,
    this.age});
}

我有一个喜欢的人的名单,

List<Person> persons;

现在,我需要根据其构造函数参数(例如id或age)对该列表进行排序。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

您应该使用sort方法。

这是一个简单的示例,按人员名称对列表进行排序:

class Person {
  final int id;
  final String name;
  final String email;
  final int age;

  Person({
    this.id,
    this.name,
    this.email,
    this.age});

  @override
  String toString() {
    return "Person $name";
  }
}

void main () {
  List<Person> people = new List();
  people
    ..add(Person(name: "B"))
    ..add(Person(name: "A"))
    ..add(Person(name: "D"))
    ..add(Person(name: "C"));

  people.sort((p1, p2) => p1.name.compareTo(p2.name));
  print(people);
}

输出:

[Person A, Person B, Person C, Person D]