如何在一个语句中按多个级别对有角飞镖列表进行排序?

时间:2020-08-19 17:32:07

标签: dart

在有角飞镖中,我有一个带有日期和ID(整数)的交易清单。我想按日期对列表进行排序,并按ID对每个相似的日期子排序。通过首先按ID排序,然后再按日期对列表进行排序,我能够做到这一点。这似乎是一种常见的排序类型。可以用一个排序语句而不是两个语句吗?

transactions.sort((a, b) => (a.id.compareTo(b.id)));
transactions.sort((a, b) => (a.transdate.compareTo(b.transdate)));

1 个答案:

答案 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;
});