Сортировать список объектов в Flutter (Dart) по значению свойства

Как отсортировать список объектов в алфавитном порядке одного из его свойств (не имя, а действительное значение, которое содержит свойство)?

Ответы

Ответ 1

Вы можете передать функцию сравнения в List.sort.

someObjects.sort((a, b) => a.someProperty.compareTo(b.someProperty));

Ответ 2

Если вы хотите отсортировать объект "объекты" по свойству "имя", сделайте что-то вроде этого

objects.sort((a, b) {
  return a.value['name'].toString().toLowerCase().compareTo(b.value['name'].toString().toLowerCase());
});    

Ответ 3

Пример сортировки списка с использованием статических методов расширения Dart:

import 'package:enumerable/enumerable.dart';

void main(List<String> args) {
  var strings = ["c", "bb", "b", "cc", null, "a", 'ccc'];
  var query = strings.orderBy((s) => s).thenBy((s) => s.length);
  print(query.toList());
}

Результат:

[null, a, b, bb, c, cc, ccc]