如何从Kotlin中的列表中获取内部消息值?
我正在尝试将列表转换为IntRange,但我不知道如何做。你能帮我吗如何从Kotlin中的列表中获取内部消息值?,kotlin,Kotlin,我正在尝试将列表转换为IntRange,但我不知道如何做。你能帮我吗 val list: List<Int> = (1, 2, 3, 4, 5).toList() val rangeFromTheList: IntRange = ??? // 1..5 您可以从列表中获取最小值和最大值,并从中创建一个范围: val list = listOf(1, 2, 3, 3, 5) val min = list.min() ?: 0 val max = list.max() ?: 0 va
val list: List<Int> = (1, 2, 3, 4, 5).toList()
val rangeFromTheList: IntRange = ??? // 1..5
您可以从列表中获取最小值和最大值,并从中创建一个范围:
val list = listOf(1, 2, 3, 3, 5)
val min = list.min() ?: 0
val max = list.max() ?: 0
val rangeFromTheList = min..max
或者,如果它总是以升序排列,那么
val list = listOf(1, 2, 3, 3, 5)
val rangeFromTheList: IntRange = list.first()..list.last() // 1..5
你可以做:
fun List<Int>.asRange(): IntRange {
val range = first()..last()
if (range.toList() != this) {
throw IllegalStateException("list is not continuous.")
}
return range
}
如果列表中有空白怎么办?
listOf(1, 2, 3, 4, 5).asRange() //OK
listOf(1, 2, 2, 4, 5).asRange() //NOK
listOf(1, 1).asRange() //NOK