Sorting 如何在Dart中创建排序方法?

Sorting 如何在Dart中创建排序方法?,sorting,dart,Sorting,Dart,给定一个月的列表,如何在Dart中创建自己的排序方法? 考虑这个问题。 排序顺序为: [“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月”] 示例 鉴于: 列出月份=[“十月”、“一月”、“七月”]; 预期产出为: [“一月”、“七月”、“十月”] 您可以使用。 根据您提供的排序顺序,您可以使用indexOf获取表示排序“权重”的整数值,然后如果元素a出现在元素b之前,则使用返回负值,即indexOf值较小,如果它出现在

给定一个月的
列表
,如何在Dart中创建自己的排序方法?
考虑这个问题。

排序顺序为:

[“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月”]
示例

鉴于:

列出月份=[“十月”、“一月”、“七月”];
预期产出为:

[“一月”、“七月”、“十月”]
您可以使用。
根据您提供的排序顺序,您可以使用
indexOf
获取表示排序“权重”的整数值,然后如果元素
a
出现在元素
b
之前,则使用返回负值,即
indexOf
值较小,如果它出现在元素
b
之后,则为正值:

const List排序顺序=['一月'、'二月'、'三月'、'四月',
“五月”、“六月”、“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月”];
列出月份=['十月'、'一月'、'七月'];
月份.sort((a,b)=>sortingOrder.indexOf(a).compareTo(sortingOrder.indexOf(b));
打印(月);//[一月、七月、十月]

通过这种方式,您显然可以非常轻松地创建对不同类型的值进行排序的任何类型的排序顺序。

。重复使用indexOf的成本很高。您应该创建一个映射一月到1、二月到2的地图,依此类推,并按此进行排序。