2

我有这个代码:

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

...我从这里派生,但我的 .NET 旧版本(或者问题可能是我的 .NET (Compact Framework)的弱版本)不包含“包含”。

我认为我可以将该行替换为:

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

...但我并不太相信这是最好的方法。有没有更容易接受的方式?

4

1 回答 1

2

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

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

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

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

if (x.Items[0].ToString().ToLower().IndexOf(tblSent.ToLower()) != -1)
于 2014-10-07T18:18:39.253 回答