sortItems<T> function
List<T>
sortItems<T>(
- ItemRenderer<
T> itemRenderer, - Iterable<
T> items, { - bool ignoreCase = false,
Returns a new list of items sorted according to the string obtained from
itemRenderer
.
itemRenderer
should return a unique string representation for each item.
Implementation
List<T> sortItems<T>(ItemRenderer<T> itemRenderer, Iterable<T> items,
{bool ignoreCase = false}) {
// TODO(google): Use new SplayTreeMap<String, T>.fromIterable<T>(...) when
// generic constructors becomes available.
var itemsMap = SplayTreeMap<String?, T>();
if (ignoreCase) {
for (T item in items) {
itemsMap[itemRenderer(item)!.toLowerCase()] = item;
}
} else {
for (T item in items) {
itemsMap[itemRenderer(item)] = item;
}
}
return itemsMap.values.toList();
}