Cra*_*d22 5 c# foreach listbox
我的项目中有一个foreach语句有问题.到目前为止,我有代码:
foreach(object i in listboxFiles.Items)
{
if (i == ".ftpquota")
{
listboxFiles.Items.Remove(i);
}
if (i == ".")
{
listboxFiles.Items.Remove(i);
}
if (i == "..")
{
listboxFiles.Items.Remove(i);
}
}
Run Code Online (Sandbox Code Playgroud)
我在一秒计时器中有这个.它可以获得项目名称,但是当它到达if语句时它表示它们不匹配,但是它们呢?
第一件事情,你正在改变一个集合,而遍历它.这不起作用,因此您的代码从根本上被打破.
有几种方法可以解决这个问题; 在你的情况下,最简单的方法是复制items集合,迭代副本并更改(=删除)原始集合:
var items = new System.Collections.ArrayList(listboxFiles.Items);
foreach (var item in items) {
if (item.Equals("."))
listboxFiles.Items.remove(item);
…
}
Run Code Online (Sandbox Code Playgroud)
其次,您将a object与a 进行比较string,因此==运算符确实引用了相等性检查而不是测试字符串相等性.使用Equals或做适当的演员.
| 归档时间: |
|
| 查看次数: |
31010 次 |
| 最近记录: |