我有这段代码:
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)
......但我并不过分相信这是最好的方式。有更可接受的方式吗?
答案 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)