1

如果 a 与我预期的字符串匹配,我需要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与字符串进行比较。您能否建议如何实现这一目标?

4

1 回答 1

2

使用 linq 方法Any

return comboBox.ItemElements.Any(item => item.Text.Contains(expectedString));

在上面的代码中,您混合了不同 linq 方法的使用

  1. FirstOrDefault- 它返回集合中与谓词匹配的第一项,否则返回default(T)
  2. 然后,如果不是null,您执行 anSelect但将其分配给任何地方。
  3. 您在循环中有此代码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

于 2016-08-26T06:27:33.300 回答