首页 > 解决方案 > 在 Kotlin 中,有没有一种更原生的方式来比较整数,然后是字符串?

问题描述

我正在对一个列表进行排序Pair<Int, String>

list.sortedWith(Comparator.comparingInt<Pair<String, Int>> { it.second }
    .thenComparing { it -> it.first })

必须指定似乎有点奇怪,{ it ->所以我应该使用更多 Kotlin 风格的东西吗?


编辑:对不起,我在问这个问题时迷路了:虽然我确实想知道下面的答案,但我想我真的很好奇为什么我不能省略it ->

这编译:

var c = Comparator
    .comparingInt<Pair<String, Int>> { it.second }
    .thenComparing { it -> it.first }

这抱怨“未解决的参考it”:

 var c = Comparator
     .comparingInt<Pair<String, Int>> { it.second }
     .thenComparing { it.first }

标签: kotlin

解决方案


我想这就是你要找的东西:

sortedWith(compareBy({ it.first }, {it.second})

推荐阅读