Как сравнить ItemElements Radcombobox с ожидаемой строкой?
Мне нужно сравнить, если Radcombobox
имеет ItemElements
это соответствует моей ожидаемой строке. Вот что я пытаюсь сделать:
foreach (IRadComboBoxItem item in comboBox.ItemElements)
{
var itemExists = comboBox.ItemElements.FirstOrDefault(items => item.Text.Contains(expectedString));
if (itemExists == null) continue;
itemExists.Select();
return true;
}
тем не мение comboBox.Text.Contains(expectedString)
не поддерживается как я сравниваю IRadComboBoxItem
со строкой. Не могли бы вы подсказать, как этого добиться?
1 ответ
Используйте метод linq Any
:
return comboBox.ItemElements.Any(item => item.Text.Contains(expectedString));
В приведенном выше коде вы немного смешали использование различных методов linq
- в
FirstOrDefault
- возвращает первый элемент в коллекции, который соответствует предикату, в противном случаеdefault(T)
, - Тогда, если это не так
null
Вы выполняетеSelect
но назначить его в никуда. - У вас есть этот код в
foreach
цикл - но не используйтеitem
нет нигде. вам не нужен цикл, потому что вы пытаетесь использовать методы linq (которые за кулисами используют сами циклы)
Следующий комментарий, что вы хотите:
var wantedItem = comboBox.ItemElements.FirstOrDefault(item => item.Text.Contains(expectedString));
if(wantedItem != null)
{
//What you want to do with item
}
Не работал с RadComboBox
сам, но на этом сайте может быть:
RadComboBoxItem item = comboBox.FindItemByText(expectedString);
Я предполагаю, что если он не найдет, он вернетсяnull