Как сделать UpdateOrInsert в коллекциях Котлина

У меня есть список элементов, и один экземпляр экземпляра изменяется пользователем, как его найти в моей коллекции по идентификатору и обновлению, или если он не найден, я хотел бы добавить элемент? моя лучшая догадка, но для этого требуется уродливый indexOf (v)

fun updateOrInsert(note : UserNote) { val list = notes.value!! val v = list.firstOrNull{(Id) -> Id ==note.Id} if (v==null) { list.add(note) } else { val i = list.indexOf(v) list[i] = note } notes.value = list } 

Solutions Collecting From Web of "Как сделать UpdateOrInsert в коллекциях Котлина"