dart map<PostModel, double> 排序 [重复]
Posted
技术标签:
【中文标题】dart map<PostModel, double> 排序 [重复]【英文标题】:dart map<PostModel, double> sorting [duplicate] 【发布时间】:2021-03-26 14:40:33 【问题描述】:我有以下代表职位和距离的地图:Map<PostModel, double> products =
我想按升序对地图的值进行排序,但是:
products.values.toList().sort();
不起作用,地图保持不变。 PostModel 不可比较,也不可迭代,多个 Post 可以有相同的距离。 所以最后,地图看起来像:
(post1, 100),(post2, 100),(post3, 30),(post4,450),(post5,450)....
【问题讨论】:
你也可以考虑这个包:pub.dev/packages/sortedmap Sortedmap 在这里不起作用,因为 PostModel 不可比较......它无法实例化 【参考方案1】:你可以试试这样的:
final sortedValues =
products.entries.toList()
..sort((key1, key2) =>
key1.value.compareTo(key2.value)
);
products = Map.fromEntries(sortedValues);
print(products);
【讨论】:
像个魅力,tks,在这里学到了一些非常有趣的方法 很高兴它对你有用。如果您愿意,也请给答案一个赞(赞成)。以上是关于dart map<PostModel, double> 排序 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
Flutter 类型“Future<dynamic>”不是“Stream<PostModel>”类型的子类型?
Dart 映射,如何根据其键 id 替换 list<map> 中的特定键值?
如何将 List<Map<String,dynamic> 转换为 Dart 中的单个变量?
Dart:尽管强制转换,但无法将 List<dynamic> 转换为 List<Map<String, dynamic>>