Взять из List элементы до определенного элемента

Необходимо брать из списка только те элементы, которые находятся до определенного элемента.

Есть такой код(рабочий): Этот код выполняется когда внутри есть хотя бы один элемент.

val list = mutableListOf(1, 2, 3, 4, 5, 6 , 7)
val index = list.indexOf(5)
val newList = list.subList(0, index)
//return 1,2,3,4

val list2 = mutableListOf(5)
val index2 = list2.indexOf(5)
val newList2 = list2.subList(0, index2)
//return empty list

Есть ли какое то изящное решение в котлин?

Off top: Не совсем понял как работает dropWhile


Ответы (1 шт):

Автор решения: IR42

dropWhile не совсем то, что нужно, а нужно takeWhile:

val newList = list.takeWhile { it != 5 }

→ Ссылка