【发布时间】:2010-05-28 03:00:57
【问题描述】:
我有以下 C# 代码段,它获取一个列表,找到准备更新的对象,然后将它们推入临时列表,从主列表中删除,然后继续其愉快的方式。我的问题是循环遍历我的主列表的 foreach 块不会退出。
TempLog.Clear(); //Ensure TempLog is empty
foreach (CLogger ready in PlayerLog)
{
if (ready.UpdateReady == true) // Record is ready to be updated in database
{
TempLog.Add(ready); // Add record to templog
PlayerLog.Remove(ready); // Remove from playerlog
}
}
<---- Never reaches this point
if (TempLog.Count > 0) // Just check that templog isn't empty
{
new Thread(Update).Start(); // Run update code
}
我已经进行了大量调试,我可以看到 PlayerLog 从 1 开始,TempLog 从 0 开始,然后它进入 foreach 循环,发现记录 UpdateReady 标志打开,TempLog 变为 1,PlayerLog 变为0,然后它就停止..没有错误,只是停止..
感谢您的帮助:)
【问题讨论】:
-
一个建议:布尔属性应以'Is'为前缀,并像这样使用
if(ready.IsUpdateReady)