gpt4 book ai didi

list - 在Flutter/Dart中对具有相同属性(时间戳)的不同对象的列表进行排序

转载 作者:行者123 更新时间:2023-12-03 04:51:34 26 4
gpt4 key购买 nike

我想按日期对一个列表进行排序,该列表包含2个不同的对象(ClassA和ClassB),具有相同的属性时间戳“createdAt”。我已经尝试过这种解决方案:

_list.sort((a, b) => a.createdAt.compareTo(b.createdAt));

仅当_list包含单一类型的对象(ClassA或ClassB)但不能同时包含两种类型时,它才起作用。

有人有主意吗?
谢谢。

解决方案:使用createdAt属性创建一个抽象类,并在childs上实现它

最佳答案

我认为问题在于您有一个带有动态类型的列表。因此,我建议创建一个包含ClassA和ClassB信息的抽象类,以便dart编译器理解。

List<Parent> _list = [
ClassA(DateTime(2020, 04, 04)),
ClassB(DateTime(2020, 03, 04)),
ClassA(DateTime(2020, 02, 04)),
ClassB(DateTime(2020, 01, 04))
];

_list.sort((a,b)=> b.createdAt.compareTo(a.createdAt));

abstract class Parent {
DateTime createdAt;
}

class ClassA implements Parent {
DateTime createdAt;
ClassA(this.createdAt);
}

class ClassB implements Parent {
DateTime createdAt;
ClassB(this.createdAt);
}

这也是我可以对列表进行排序的CodePen。

https://codepen.io/md-weber/pen/RwWaMgz

关于list - 在Flutter/Dart中对具有相同属性(时间戳)的不同对象的列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61266886/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com