我想在检查特定字符串后从列表视图中删除行。如果字符串在 文本框与列表视图中的字符串匹配,行仍然存在,否则行将被删除。 2个foreach循环和if语句的顶部部分工作正常,但是else部分是给我问题的....我不知道如何编码它。
提前致谢
到目前为止代码: -
foreach (ListViewItem item in listView1.Items)
{
foreach (ListViewItem.ListViewSubItem subItem in item.SubItems)
{
if (subItem.Text.ToLower().StartsWith(textBox1.Text.ToLower()))
{
var index = item.Index;
MessageBox.Show(listView1.Items[index].ToString());
count++;
}
else
{
listView1.Items[item].Remove();
}
}
}
答案 0 :(得分:0)
您可以在新列表中添加匹配项目,而不是像以下那样从当前循环中删除项目: -
listView1.Items newItemList = new listView1.Items();
foreach (ListViewItem item in listView1.Items)
{
foreach (ListViewItem.ListViewSubItem subItem in item.SubItems)
{
if (subItem.Text.ToLower().StartsWith(textBox1.Text.ToLower()))
{
var index = item.Index;
MessageBox.Show(listView1.Items[index].ToString());
count++;
newItemList.Add(item);
}
else
{
//listView1.Items[item].Remove();
}
}
}