2017-03-22 4 views
-1

combobox1.textがそのリストアイテムと一致してからさらに機能する場合は真になりたい。しかし、ユーザーへの警告メッセージではない場合...これまでのところ、私はcombobox.textがそのリストアイテムと一致する場合にtrueを取得する方法

 bool itemExists = false; 
    foreach (object obj in comboBox1.Items) 
    { 
     itemExists = obj.Equals(comboBox1.Text); 
     if (itemExists) 
     { 
      itemExists = true; 
     } 
     break; 

    } 

    if (itemExists) 
    { 
     MessageBox.Show("good00"); 
    } 
    else 
    { 
     MessageBox.Show("sorry no value"); 
    } 
} 

とも

bool test ; 
    test = comboBox1.Items.OfType<object>().Any(cbi => cbi.Equals(comboBox1.Text)); 

    if (test) 
    { 
     MessageBox.Show("values matched"); 
    } 

    else 
    { 
     MessageBox.Show("not matched"); 
    } 

を試してみましたが、それはチェックして、私は..私が希望するもの、それが動作するはず を取得しておりませんcombobox .textをリストと比較し、一致するものがあればtrueを返し、真の値はそれ以上の関数を使用します。それは偽のエラー・メッセージを送信するために使用されるものとfalseを返し一致..

任意の提案は彼らのしなければ...

感謝..

答えて

1

この文は何もしません:

if (itemExists) 
{ 
    itemExists = true; 
} 

breakの直後は無条件です。 if条件の内側にそれを移動すると、問題を解決します:

if (itemExists) 
{ 
    break; 
} 

あなたの第二のアプローチは、型stringのオブジェクトに対してそのまま動作するはずです。すべてのタイプのオブジェクトを操作するために、それを変更するには、

if (!itemExists) 
{ 
    MessageBox.Show("sorry no value"); 
} 
+0

おかげで、どのように何もマッチした値がそのされていない場合はメッセージを表示するために使用一致がない場合にのみ、メッセージを表示するには

test = comboBox1 .Items.OfType<object>() .Any(cbi => cbi.ToString() == comboBox1.Text); 

を使用しています。 – speedyraz

+0

私は必要なものについて私の質問を更新しました – speedyraz

+0

@speedyraz私は編集で追加した段落の意味を理解していません。あなたのメソッドは何も返しません。あなたが戻ってきたので、あなたはその方法から外れているので、あなたは "戻り値を使用する"ことはできません。不一致で終了したい場合は、 'MessageBox.Show'呼び出しの後の条件文に' return; 'を入れてください。 – dasblinkenlight

関連する問題