Лямбда не работает на массиве - PullRequest
0 голосов
/ 17 июня 2011

У меня есть следующий массив

 Dim items() = {
                              New CheckedListBoxItem("NYC", False),
                              New CheckedListBoxItem("CHI", False),
                              New CheckedListBoxItem("PHL", False),
                              New CheckedListBoxItem("SFO", False),

                }

Я пытаюсь выполнить запрос к нему следующим образом

        Try
            Dim item As CheckedListBoxItem = items.ToList().Where(Function(x) x.Value = "PHL")
            MsgBox(item.Value)
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try

Я получаю сообщение об ошибке

Значениене может быть нулевым.

Имя параметра: источник

Я также пытался

 Dim item As CheckedListBoxItem = items.FirstOrDefault(Function(x) x.Value.ToString() = "PHL")

Чего мне не хватает.Мне просто нужно запросить список, чтобы получить элемент и изменить его проверенное состояние с false на true.

1 Ответ

1 голос
/ 17 июня 2011

Вам нужно сделать:

item = items.ToList().Where(Function(x) x.Value = "PHL").First

MsgBox(item.Value)

First возвращает Первый элемент из коллекции или выдает исключение, если коллекция пуста.

FirstOrDefault возвращает Первый элемент из коллекции или экземпляр по умолчанию для типа, если коллекция пуста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...