我正在尝试查看当用户输入一些文本时它是否会在数组中搜索任何匹配项,以及是否从数组中删除任何不匹配项;
string search = textBox1.Text;
for (int i = 0; i < staffUsers.Count; i++)
{
if (!(staffUsers[i].staff_name.Contains(search)))
{
staffUsers.Remove(staffUsers[i]);
}
}
我的数组“Rob Dob”、“Joe Bloggs”、“h h”、“ghg hgh”中有一些垃圾名称,如果搜索变量最终为“R”,Joe Bloggs 将被删除,但“h h' 和 'ghg hgh' 留在那里,但那里根本没有涉及 R?有什么理由>?!
您必须向后迭代才能从数组中删除。每次你删除一个项目,你的数组就会变小。通过倒退,这个事实并不重要。
string search = textBox1.Text;
for (int i = staffUsers.Count - 1; i >= 0 ; i--)
{
if (!(staffUsers[i].staff_name.Contains(search)))
{
staffUsers.Remove(staffUsers[i]);
}
}
我是一名优秀的程序员,十分优秀!