.NET 4.5有一个新的命名空间System.Collections.Immutable

这个包提供线程安全的集合,并保证永远不会更改其内容,也称为不可变集合.

我很困惑.线程安全问题不是已经由ReadOnlyCollection类解决了吗?为什么用ImmutableList代替呢?


我知道还有IReadOnlyList interface个.这并不能隐式地解决线程安全问题,因为其他线程可能会通过另一个接口编辑对象.

推荐答案

使用ReadOnlyCollection:

只读的集合只是带有包装器的集合

这不可能发生在ImmutableList岁的人身上.

.net相关问答推荐

条带连接支付—引发异常

当数据大量分布在微服务中时,我应该如何设计后端?

与 Datagrid 的 SelectedItem 链接时的 WPF RadioButton 绑定问题

等待时 Blazor 服务器按钮刷新

查询 MongoDb 中嵌入式文档中的一个字段,该字段抛出调用运算符的左侧必须是对持久属性的直接访问

如何在 ASP.NET Core MVC 中读取操作方法的属性?

为什么不能使用 null 作为 Dictionary 的键?

.NET 的future 版本会支持 C# 中的元组吗?

在 Moq 中模拟泛型方法而不指定 T

抛出 ArgumentNullException

DateTime.TryParseExact() 拒绝有效格式

如何根据默认样式创建样式?

List 和 IEnumerable 的实际区别

如何允许程序集(单元测试)访问另一个程序集的内部属性?

如何在 C# 中安全地将 System.Object 转换为bool?

有没有像样的 C# 分析器?

MVC4 HTTP 错误 403.14 - 禁止

带有嵌套控件的设计模式

作者主签名的时间戳发现了一个建链问题:UntrustedRoot: self-signed certificate in certificate chain

您可以将 Microsoft Entity Framework 与 Oracle 一起使用吗?