我有一个List<T>
它位于通过 NHibernate 填充的实体类中。当我打电话时.Clear()
在那份名单上,我得到了IndexOutOfRangeException
.
我已经验证该列表在调用之前已包含项目,但会引发相同的异常。
当你调用这个方法时,你希望在什么情况下得到这个异常?
private readonly List<VacancyTag> _vacancyTags = new List<VacancyTag>();
public virtual void RemoveAllVacancyTags()
{
_vacancyTags.Clear();
}
Edit:
疯狂的是,即使抛出异常并且我中断了调试器,我也可以在立即窗口中查询该对象,并可以确认 Count() 方法返回值 5!
典型的情况是有多个线程访问同一个列表。
如果一个线程在另一个线程正在清除列表时删除了一项,则可能会引发此异常。
记住List<T>
类是not线程安全。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)