combobox重复条目
我正在使用comboBox.Items.Add(entry);
将项添加到combobox中comboBox.Items.Add(entry);
。 但是如何避免combobox中的重复条目(即同名条目)。 有没有libfunction
添加前检查项目:
if (!comboBox.Items.Contains(entry)) comboBox.Items.Add(entry);
Items
集合具有Contains
方法
if (!comboBox.Items.Contains(entry)) { comboBox.Items.Add(entry); }
ComboBox.Items
属性的类型为System.Windows.Forms.ComboBox.ObjectCollection
,它声明像这样的Contains
方法
public bool Contains(object value)
如果要使用AddRange
,则必须提供数组中的项。 因此,您必须确保此数组不包含重复项。 此外,如果ComboBox
已包含项目,则必须确保此数组不包含相同的项目。
我们首先假设ComboBox
为空,并且您的项目由一些枚举给出(例如,这可能是List
或数组):
comboBox.Items.AddRange( itemsToAdd .Distinct() .ToArray() );
你必须有一个using System.Linq;
在代码的顶部。 您也可以订购商品。 我假设他们是string
类型:
comboBox.Items.AddRange( itemsToAdd .Distinct() .OrderBy(s => s) .ToArray() );
如果ComboBox已包含项目,则必须从添加的项目中排除它们
comboBox.Items.AddRange( itemsToAdd .Except(comboBox.Items.Cast()) .Distinct() .OrderBy(s => s) .ToArray() );
(再次假设itemsToAdd
是字符串的枚举。)
使用HashSet类绑定控件,如何依赖于表示技术,或使用LINQ的Distinct方法来过滤重复项。
如何将项目转换为String
var check = comboBox1.Items.Cast().Any(c => c.ToString() == "test");
- ‘System.ComponentModel.PropertyChangedEventHandler’无法从特殊类’System.MulticastDelegate’派生
- 在引用中找不到System.Drawing.dll
- 在TPL中中止长时间运行的任务
- 如何最好地应用WPF MVVM?
- DotNetOpenAuth.Messaging – 协议错误:此消息的时间戳为{0},超出了将来允许的时钟偏差
- 无法定义两个对象之间的关系,因为它们附加到不同的ObjectContext对象
- 如何确定哪些字体包含特定字符?
- 如何检测是否按下了刷新按钮(F5)
- 如何从asp.net中的javascript调用codebehind函数?