gpt4 book ai didi

c# - 为什么我在迭代集合时不应该修改它

转载 作者:行者123 更新时间:2023-11-30 19:18:00 30 4
gpt4 key购买 nike

<分区>

我知道在 .net 中,集合类型(或至少某些集合类型)不允许在迭代时修改集合。

例如在 List 类中存在这样的代码:

if (this.version != this.list._version)
ThrowHelper.ThrowInvalidOperationException(ExceptionResource.InvalidOperation_EnumFailedVersion);

但显然这是设计迭代器类的开发人员的决定,因为我可以提供 IEnumerable 的一些实现,至少在底层集合被修改时不会抛出任何异常。

然后我有一些问题:

  • 为什么我不应该在迭代集合时修改它?

  • 是否可以创建一个支持在对其进行迭代时进行修改的集合,而不会出现任何其他问题? (注意:第一个答案也可以回答这个)

  • 当 C# 编译器生成 Enumerator 接口(interface)实现时会考虑到这样的事情吗?

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