哪个.NET库具有写时复制集合?

xia*_*982 24 .net c#

我正在寻找在C#程序中使用的.NET copy-on-write集合,例如List,Dictionary等.哪些集合具有该属性?

Las*_*olt 17

包括参考FSharp.Core.然后你可以使用许多类型的集合是不可变的(Set,List,Map等)

这些位于Microsoft.FSharp.Collections.

例:

var map = MapModule.Empty<string, int>();
var newMap = map.Add("key", 1);
Run Code Online (Sandbox Code Playgroud)

您可能想要定义一些扩展方法,以便可以直接调用map.

更新: BCL团队正在研究另一个答案中提到的不可变集合,这使得这部分过时了.仍然可以使用F#集合,但BCL集合对它们有更多的C#感觉.

直接链接到Nuget包:Immutable Collections


And*_*ott 9

.NET刚刚发布了他们的第一个写时复制集合,我建议你试试.

  • 新版本:[更新为不可变集合](http://blogs.msdn.com/b/bclteam/archive/2013/03/06/update-to-immutable-collections.aspx) (4认同)