在有角飞镖中,我有一个带有日期和ID(整数)的交易清单。我想按日期对列表进行排序,并按ID对每个相似的日期子排序。通过首先按ID排序,然后再按日期对列表进行排序,我能够做到这一点。这似乎是一种常见的排序类型。可以用一个排序语句而不是两个语句吗?
transactions.sort((a, b) => (a.id.compareTo(b.id)));
transactions.sort((a, b) => (a.transdate.compareTo(b.transdate)));
答案 0 :(得分:1)
是可能的
您只需要先比较日期,如果日期相同,就比较ID
transactions.sort((a, b) {
final diff = a.transdate.compareTo(b.transdate);
if (diff == 0) {
return a.id.compareTo(b.id);
}
return diff;
});