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