Dot-Net

Microsoft.FSharp.Collections 與 System.Collections.Immutable

  • January 16, 2014

我最近發現.Net中有一堆不可變的集合

F# 是一種專注於不可變性的語言,它有自己的不可變數據類型。有趣的是,我在任何關於 F# 的閱讀中都沒有看到對上述不可變集合的引用。

我想知道這些不可變集合和 F# 集合之間有什麼關係嗎?有什麼使用指南嗎?哪個更好,F#Map<_,_>ImmutableDictionary(TKey, TValue)類的?

更新也許我可以這樣問:有沒有人有在同一個項目中使用這兩個庫的經驗或者比較過他們的生產力?或者就是這樣 - 首先是用於 C#,而後者是用於 F#,僅此而已?

這種重複的原因很簡單,這System.Collections.Immutable是最近添加的,旨在用於 C#,因此其設計者不希望人們必須參考FSharp.Core.dll.

至於在兩者之間進行選擇,我將System.Collections.Immutable在 C# 程式碼和旨在從 C# 中使用的 F# 程式碼以及Microsoft.FSharp.Collections所有其他 F# 程式碼中使用。AFAIK在性能方面沒有顯著差異。典型的程式碼看起來像 SCI 的鍊式方法呼叫和 MFC 的一系列|>呼叫,但這實際上只是句法上的差異——從概念上講,它是同一件事。

引用自:https://stackoverflow.com/questions/21136344