我正在搜索要在C#程序中使用的.NET copy-on-write集合,例如List,Dictionary等。哪些集合具有该属性?
答案 0 :(得分:17)
包含参考FSharp.Core
。然后您可以访问多种不可变的集合(Set
,List
,Map
等。)
这些位于Microsoft.FSharp.Collections
。
示例:
var map = MapModule.Empty<string, int>();
var newMap = map.Add("key", 1);
您可能希望定义一些扩展方法,以便直接在map
上调用。
更新: BCL团队正在研究other answer中提到的不可变集合,这使得这部分过时了。仍然可以使用F#集合,但BCL集合对它们有更多的C#感觉。
直接链接到Nuget包:Immutable Collections
答案 1 :(得分:9)
.NET刚发布了他们的第一个copy-on-write collections,我建议你试试。