我正在尝试在C#中删除列表框中的空项

smo*_*hie 2 c# listbox

所以我想删除列表框中的空白项目,就像空白一样,所以我有这个代码.但是编译器给了我一个错误

for (int i = 0; i < listBox2.Items.Count; i++)
{
    if (listBox2.Items[i].ToString = " "){//ERROR*
        listBox2.Items.RemoveAt(i);
    }
}
Run Code Online (Sandbox Code Playgroud)

*无法将方法组'ToString'转换为非委托类型'bool'.你打算调用这个方法吗?

Ant*_*ram 9

ToString是一种方法,所以你需要它ToString(),并且用两个等号==而不是一个等号进行相等比较.一个等号是分配.

话虽如此,要迭代你的集合并按索引删除项目,你会想要反过来.您会注意到,当您移除项目时,您的项目数量将明显下降,因此您的循环将不会像您认为的那样.所以去这样的事情:

int count = listBox2.Items.Count;
for (int i = count - 1; i >= 0; i--)
{
    if (listBox2.Items[i].ToString() == " ")
    {
        listBox2.Items.RemoveAt(i);
    }
} 
Run Code Online (Sandbox Code Playgroud)

  • 在<.NET4的情况下,您仍然可以使用`string.IsNullOrEmpty(foo.Trim())`.而且我很确定这是问题的作者所期望的,而不是单一的空间. (2认同)