sortBy method

List<T> sortBy(
  1. TFuncMapper<T, dynamic> funcMapper, [
  2. bool descending = false
])

Implementation

List<T> sortBy(TFuncMapper<T, dynamic> funcMapper, [ bool descending = false ]) {
	List<T> lst = this.toList(growable: true);
	lst.sort((T a, T b) {
		dynamic da = funcMapper(a);
		dynamic db = funcMapper(b);

		if (da == null && db == null) {
			return 0;
		}

		int result;
		if (da == null) {
			result = -1;
		}
		else if (db == null) {
			result = 1;
		}
		else {
			result = Comparable.compare(da, db);
		}

		if (descending) {
			result *= -1;
		}

		return result;
	});
	return lst;
}