2016-08-26 4 views
1

Radcomboboxには、私の予想される文字列と一致するItemElementsがある場合、比較が必要です。ここで私がやろうとしているものです: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; 
} 

私は文字列でIRadComboBoxItemを比較してるようcomboBox.Text.Contains(expectedString)がサポートされていませんが。これを達成する方法をお勧めしますか?

答えて

2

Anyの使用LINQ方法:あなたの上記のコードで

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

あなたは少しに別のLINQメソッドFirstOrDefault

  1. の使用を混合 - それは、そのコレクションの最初の項目を返します。述語に一致します。それ以外の場合はdefault(T)です。
  2. nullでない場合は、Selectを実行しますが、どこにも割り当てません。
  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で自分自身を動作しますが、多分によるthis siteませんでした:

RadComboBoxItem item = comboBox.FindItemByText(expectedString); 

返信が見つからない場合は、返信します。null

+0

ありがとうございます。コードを修正しました。しかし、あなたの提案は私の問題を解決しませんでした。私はデータバインドされたコンボボックスを持っています。 Textプロパティは利用できません。 combobox.ItemElementsは要素を返しますが、item.Textは常にnullを保持します。だから私は文字列を比較することができません。さらに私は、コンボボックスからその要素を選択して、expectedStringと一致するものを選択しています – SKN

+0

@SKN - 最新のアップデートを確認してください –

関連する問題