【发布时间】:2021-06-12 19:03:44
【问题描述】:
我需要对 CustomObjects 中的 List 进行排序。首先,对象应在其属性dateTime 之后排序,如果相同,则应在另一个属性compare-property 之后排序。
我搜索了 multisort 并找到了这个:
medcimentNotificationListData.sort((med1, med2) {
var r = med1.datetime.compareTo(med2.datetime);
if (r != 0) return r;
return med1.mealTimeDescription.compareValue
.compareTo(med2.mealTimeDescription.compareValue);
});
但是当在它之后打印列表时,列表没有排序..
medcimentNotificationListData.forEach((medicamentNotificationData) {
print(
'${medicamentNotificationData.title}, order: ${medicamentNotificationData.mealTimeDescription.compareValue}');
});
我在这里缺少什么?有没有一种简单的多排序方法?
如果您需要更多信息,请告诉我!
【问题讨论】:
-
你做得对。有没有错误
-
@sajithlakmal 没有错误。你能解释一下这实际上在做什么吗?什么是
r,为什么要比较r != 0? -
这是一个
int,可以是 -1、0 或 1 。如果为 -1,则意味着a元素将被放置在列表的b元素之前。 0 表示元素 `a` 和b相等,1 表示元素a在顺序中位于元素b之后。
标签: list flutter sorting dart array-multisort