flutter - 我可以排序列表吗在飞镖
问题描述
我可以List<dynamic>
在飞镖中排序吗?
List<dynamic> list= [9,10,'Plus One'];
list.sort();
print(list);
我希望结果像 9,10,'Plus One' 或 'Plus One', 9, 10
解决方案
您只需要提供一个回调来List.sort
按您想要的方式订购异构类型。例如,假设你的异构List
只包含int
s 和String
s,你可以这样做:
List<dynamic> list = [9, 10, 'Plus One'];
list.sort((a, b) {
if ((a is int && b is int) || (a is String && b is String)) {
return a.compareTo(b);
}
if (a is int && b is String) {
return -1;
} else {
assert(a is String && b is int);
return 1;
}
});
print(list);
如果您需要潜在地处理其他类型,则需要适当地调整回调。
推荐阅读
- java - 如何在 Android Studio 中创建 UML 图 - JAVA 通过软件
- java - 当我访问经度和纬度的值时,它显示为空
- javascript - 你能帮忙看看控制台日志吗?
- javascript - 无法在我的颤动网络中删除放大和缩小
- java - Intellij:maven clean verify:无法执行目标org.jasig.mojo.jspc:jspc-maven-plugin:2.0.2:compile:无法编译JSPS
- git - 致命:无法访问“https://git-codecommit.eu-west-1.amazonaws.com/v1/repos/myrepo/”:请求的 URL 返回错误:403
- html - 闪亮应用程序的框架名称是什么,如何更改?
- mysql - MySQL:在 GROUP BY 查询中获取非分组列的最后一个值
- php - 使用 PDO Sqlserver 删除
- python - Python 版本号与 != 比较(不等于)