Sort List by alphabetical order
Solution 1:
<
and >
is usually a shortcut to a compareTo
method.
just use that method instead.
data.sort((a, b) {
return a['name'].toLowerCase().compareTo(b['name'].toLowerCase());
});
Solution 2:
I found the best way to sort a list alphabetically is this:
List.sort((a, b) => a.toString().compareTo(b.toString()));
Solution 3:
Thanks to Remi's answer, I extracted this as a Function.
typedef Sort = int Function(dynamic a, dynamic b);
typedef SortF = Sort Function(String sortField);
SortF alphabetic = (String sortField) => (a, b){
return a[sortField].toLowerCase().compareTo(b[sortField].toLowerCase());
};
SortF number = (String sortField) => (a, b) {
return a[sortField].compareTo(b[sortField]);
};
with this you can write.
list.sort(alphabetic('name')); //replace name with field name
list.sort(number('name')); //replace name with field name