Bra*_*ay 3 sorting dart flutter dart-null-safety
我有一个可能包含空值的字符串列表,如何对该列表进行排序?
我正在使用Flutter beta 通道,因此会检查空安全性。这是我到目前为止所拥有的:
List<String?> _list = [
'beta',
'fotxtrot',
'alpha',
null,
null,
'delta',
];
_list.sort((a, b) => a!.compareTo(b!));
Run Code Online (Sandbox Code Playgroud)
我如何得到这个结果:
_list = [
null,
null,
'alpha',
'beta',
'delta',
'fotxtrot',
];
Run Code Online (Sandbox Code Playgroud)
Ant*_*REL 12
我最近遇到了这个问题,并根据compareTo文档构建了一个单行函数:
myList.sort((a, b) => a==null ? 1: b==null? -1 : a.compareTo(b));
Run Code Online (Sandbox Code Playgroud)
注意:这会将空值带到列表的末尾。在您的情况下,只需交换 -1 和 1 即可将它们放在列表的前面。
您需要修改排序方法以处理可为空值,而不仅仅是忽略它们。处理完潜在的空值后,您可以正常比较它们。
_list.sort((a, b) {
if(a == null) {
return -1;
}
if(b == null) {
return 1;
}
return a.compareTo(b);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2191 次 |
| 最近记录: |