按布尔值对对象列表进行排序



通过调用我的服务,我收到了一个对象列表。这是我的对象模式:

class MyCard {
final String number;
final String name;
final String available;
final bool isOwn;
const MyCard({
@required this.number,
@required this.name,
@required this.available,
@required this.isOwn,
});
}

我想根据isOwn==true对我的列表进行排序。所以为了使用列表。排序:

myCards.sort((a, b) => a.isOwn - b.isOwn);

此语法不适用于dart!!我该怎么处理颤振?

根据这个答案,我得到了正确的结果:

您可以为bool定义自己的比较函数,并将其传递给List的排序方法。

将布尔值作为布尔列表的示例:

booleans.sort((a, b) {
if(b) {
return 1;
}
return -1;
});

这个示例告诉sort方法,true元素的排序应该高于false元素。

我认为您可以从MyCard类实现Comparable,并根据需要重写compareTo方法并使用它。
你可以看看这个例子。
https://www.woolha.com/tutorials/dart-sorting-list-with-comparator-and-comparable

最新更新