将另一个列表按另一个列表的顺序排序

时间:2020-01-03 17:11:17

标签: flutter dart

我正在开发一个flutter应用程序,该应用程序充当地址簿。我想按字母顺序对“名称”列表进行排序,并对地址列表进行排序,以匹配名称的排序,以将其实现为列表视图。我该如何存档第二种排序?

<html>

<body>
  <div class="sidebar">sidebar</div>
  <div class="outer">
    <div class="content">
      Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
      <div class="inner">
        Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
      </div>
      Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
    </div>
  </div>
</body>

</html>

1 个答案:

答案 0 :(得分:1)

从技术上讲这是可能的,但将比值得的事更为头痛。试图弄混两个列表并确保它们的顺序始终保持一致,这只是在询问复杂的代码和复杂的错误。

如果两个列表中的数据都是相关的,并且它们之间存在一对一的关系,则将数据捆绑到数据对象中并具有一个单独的列表。

(此外,还有一种更简单的方法来对列表进行排序。)

class Person {
  Person(this.name, this.address);

  String name;
  String address;
}

void main() {
  List<Person> persons = [
    Person('Charles', 'Western Street 2'), 
    Person('Kevin', 'Roundabout 4'),
    Person('George', 'Western Street 4'),
  ];

  // This approach sorts the list in place, changing the order of the original list
  persons.sort((a, b) => a.name.compareTo(b.name));

  // This approach returns a new list, leaving the original unaffected
  final sortedPersons = List.of(persons)..sort((a, b) => a.name.compareTo(b.name));
}