c#循环比较

Gra*_*ham 2 c# combobox while-loop

我经常使用组合框.我经常循环遍历它们以找到基于SelectedValue的匹配,例如......

while(cmbCompany.SelectedValue.ToString()!=B1ID)
{ 
    cmbCompany.SelectedIndex++; 
}
Run Code Online (Sandbox Code Playgroud)

a)我错过了一些更快捷的选择!
b)如我的比较是针对的整数,是在那里宣布一个字符串以及设置等于integer.ToString()任何益处,或者如果我只(在我的上面的例子)使用B1ID.ToString()将编译器优化它对我来说?
c)或字符串比较是如此之慢以至于我最好将SelectedValue解析(或转换)为整数?

Pau*_*sik 8

算法中最令人困惑的部分是你在每次比较时递增索引.这是非常低效的,因为您实际上每次测试都会更改选择,这些测试也会触发事件(如果您有连线)并且可能有危险,因为每次对选择更改事件做出反应都会使您的逻辑不必要地复杂化.

还有很多其他方法.这是来自MSDN的更好(虽然粗糙)的代码示例:

int index = comboBox1.FindString(textBox2.Text);
comboBox1.SelectedIndex = index;
Run Code Online (Sandbox Code Playgroud)

(请注意,此代码段首先查找集合中的数据,然后设置SelectedIndex值.)