Не уверен, что это то, что вы имели в виду, но, возможно, что-то вроде этого:
var index = 0
for (data in dataList) {
/*
if the current index is within one of the pair<int, int>
then use the mapped displayString
*/
val currentPair = data.key
if ((currentPair.first .. currentPair.second).contains(index)) {
// do something
}
index++
}
Хотя, если вы имели в виду, вы хотели, чтобы геттер получил первую пару с карты, которая содержит int, возможно, вы хотел что-то вроде этого:
fun getByIndex(dataList: Map<Pair<Int,Int>, String>, index: Int): String? {
return dataList.firstOrNull {
(it.key.first .. it.key.second).contains(index)
}
}
Используйте until
вместо ..
, чтобы иметь эксклюзивный конечный индекс