编程语言
首页 > 编程语言> > c# – 在迭代期间从SortedList中删除是否安全

c# – 在迭代期间从SortedList中删除是否安全

作者:互联网

我的问题是枚举器从SortedList中删除项目是否安全?

SortedList<decimal, string> myDictionary;
// omitted code

IEnumerator<decimal, string> enum = myDictionary.GetEnumerator();

while(enum.MoveNext)
{
  // is it ok to remove here?
  myDictionary.Remove(enum.Current.Key);
}

解决方法:

这将抛出异常 – 您无法在迭代时修改集合.

如果你仔细想一想,你会理解为什么.如果允许在集合中添加或删除,则不再迭代同一集合 – 您要么太多(添加),要么没有足够的项目(删除).

标签:c,net,ienumerator
来源: https://codeday.me/bug/20190712/1442859.html