FlutterというかDartで配列の要素のプロパティでListをソートする方法を紹介します。
以下のようなEmployeeクラスがあり、このidでソートする例をとって説明します。
class Employee {
int id;
String name;
Employee(this.id,this.name);
}
Listクラスはsort関数を持ちます。次のようにsort
関数に比較関数を渡せば簡単に要素のプロパティでソートすることができます。
final employees = [
Employee(3,"Bob"),
Employee(1,"Alice"),
Employee(2,"John"),
];
print("before sort");
employees.forEach((employee){
print("${employee.id}:${employee.name}");
});
employees.sort((a,b) => a.id.compareTo(b.id));
print("after sort");
employees.forEach((employee){
print("${employee.id}:${employee.name}");
});
print("$employees");
結果出力はこのようになります。
I/flutter ( 3321): before sort
I/flutter ( 3321): 3:Bob
I/flutter ( 3321): 1:Alice
I/flutter ( 3321): 2:John
I/flutter ( 3321): after sort
I/flutter ( 3321): 1:Alice
I/flutter ( 3321): 2:John
I/flutter ( 3321): 3:Bob