Чтобы проверить элемент коллекции - PullRequest
0 голосов
/ 30 апреля 2019

Я хочу проверить, есть ли в моей коллекции элемент с тем же именем (connection.name), и если он есть, вызвать метод, который что-то сделает, например, изменить поле: connection.name

На данный момент я получаю коллекцию следующим образом:

override fun getListItems(context: Context): List<ConnectionViewModel> {
return connectionsRepository.getAll().map { connection ->
    ConnectionViewModel(
            code = connection.code,
            name = connection.name,
   }
}

1 Ответ

3 голосов
/ 30 апреля 2019

Я хочу проверить, есть ли в моей коллекции элемент с тем же именем (connection.name)

Вы можете сделать это с помощью find() (чтобы получить результат) или any() (чтобы проверить, выполняется ли критерий хотя бы для одного элемента):

val found: ConnectionViewModel? = list.find { it.name == expectedName }

val nameExists: Boolean = list.any { it.name == expectedName }

и, если есть, то вызвать метод, который что-то сделает, например, изменить поле: connection.name

Это должно быть просто, учитывая результат found или nameExists сверху.

list.map {
    if (nameExists)
        it.copy(name = differentName)
    else
        it
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...