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

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

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


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

推荐答案

使用ReadOnlyCollection:

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

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

.net相关问答推荐

为什么 PropertyInfo.SetValue 在此示例中不起作用以及如何使其起作用?

Msbuild try 构建 msbuild.exe 而不是我的 .csproj 文件

将 Span 传递到函数时出现 F# 错误

线程安全性的单元测试?

为 XML 编码文本数据的最佳方法

每第 N 个字符/数字拆分一个字符串/数字?

如何在 C# 中将 HTML 转换为文本?

如何从 .net 中的数组类型获取数组项类型

什么是 SUT,它来自哪里?

在 ToString() 之前判断 null

String.Split 仅在 C# 中的第一个分隔符上?

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

.NET 反射的成本是多少?

MemoryStream.Close() 或 MemoryStream.Dispose()

析构函数、dispose 和 finalize 方法的区别

您可以使用 Xamarin 开发 Linux 应用程序吗?

Microsoft.Bcl.Build NuGet 包有什么作用?

为什么 Roslyn 中有异步状态机类(而不是 struct )?

在 .Net 中调用 Web 服务时绕过无效的 SSL 证书错误

System.IO.IOException:使用 System.IO.Path.GetTempFileName() 时文件存在 - 解决方案?