Сортировка двух списков, не связанных в Dart - PullRequest
0 голосов
/ 30 мая 2020

Предположим, что у меня есть два списка в Dart

List a = [Instance of <Something>, Instance of <Something>, Instance of <Something> ....], которые содержат экземпляры класса и List b = [165, 75, 123 .... ]

Я хочу отсортировать List b в порядке возрастания, но я хочу то же самое должно быть отражено и на List a. Как мне это сделать?

1 Ответ

2 голосов
/ 30 мая 2020

Я не уверен, можно ли это сделать более эффективным способом, но вы можете сделать что-то вроде этого. Я предполагаю, что два списка, которые вы хотите отсортировать, имеют одинаковую длину.

class Something {
  final String name;

  Something(this.name);

  @override
  String toString() => name;
}

class Pair<T1, T2> {
  final T1 a;
  final T2 b;

  Pair(this.a, this.b);
}

void main() {
  final a = [Something('A'), Something('E'), Something('B'), Something('C')];
  final b = [1, 5, 2, 3];

  final tempList =
      List.generate(a.length, (i) => Pair(a[i], b[i]), growable: false)
        ..sort((p1, p2) => p1.b.compareTo(p2.b));

  for (var i = 0; i < tempList.length; i++) {
    final pair = tempList[i];
    a[i] = pair.a;
    b[i] = pair.b;
  }

  print(a); // [A, B, C, E]
  print(b); // [1, 2, 3, 5]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...