gpt4 book ai didi

c# - 列表框中的 Foreach 语句

转载 作者:太空狗 更新时间:2023-10-29 22:55:58 26 4
gpt4 key购买 nike

我的项目中的 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);
}
}

我有一个 1 秒的计时器。它获取项目名称没问题,但是当它到达 if 语句时,它说它们不匹配,但它们匹配?

最佳答案

首先,您正在更改集合同时迭代它。这行不通,因此您的代码根本就被破坏了。

有几种方法可以解决这个问题;在您的情况下,最简单的方法是复制 items 集合,遍历副本并更改(=从中删除)原始文件:

var items = new System.Collections.ArrayList(listboxFiles.Items);

foreach (var item in items) {
if (item.Equals("."))
listboxFiles.Items.remove(item);

}

其次,您正在比较一个 object 和一个 string,因此 == 运算符执行引用相等性检查而不是测试字符串相等性.使用 Equals 或进行适当的转换。

关于c# - 列表框中的 Foreach 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2260852/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com