如何在不使用“包含”的情况下从列表框中删除项目?

时间:2014-10-07 18:12:42

标签: c# listbox contains indexof listboxitems

我有这段代码:

for (int i = listboxWork.Items.Count-1; i > -1; i--) 
{
    if (listboxWork.Items[i].Contains(tblSent))
    {
        listboxWork.Items.RemoveAt(i);
    }
}

...我是从here派生的,但我蹩脚的.NET旧版本(或者可能是我的微软.NET(Compact Framework)版本的问题)不包含“Contains”。

我估计我可以用以下内容替换该行:

if (listboxWork.Items[i].ToString().IndexOf(tblSent) > -1)

......但我并不过分相信这是最好的方式。有更可接受的方式吗?

1 个答案:

答案 0 :(得分:2)

Items是一组对象,因此您需要先将使用的元素转换为字符串,然后才能使用Contains

if (listboxWork.Items[i].ToString().Contains(tblSent))

编辑:因为这是CompactFramework(我最初在帖子中未能识别,所以正确的解决方案是使用已经识别的String.IndexOf。

这是一个完全可以接受的机制,但如果CF支持它,我强烈建议使用不区分大小写的比较,特别是如果评估中涉及任何用户输入:

if (x.Items[0].ToString().ToLower().IndexOf(tblSent.ToLower()) != -1)