我正在尋找一個只讀的泛型集合庫,它是一個鏡像(或者說是實現或擴展)與.NET v3.5兼容的常見System.Collections.Generic;
集合的.NET版本。是否有一組C#數據只讀泛型集合/數據結構?
我猜F#可能只有一個只讀集合(但我不確定它們是否實現了System.Collections.Generic的接口)。除此之外,我寧願不在服務器上安裝F#。我想我可能會簡單地部署F#dll(s),如果這是可行的,我懷疑它。
是否有一個只讀泛型集合類的庫,它們實現了System.Collections.Generic中的接口並提供相同的性能(或更好)特性?例如,隨機訪問數組支持IList的實現(只讀)。
4.5中添加了該名稱空間中大多數集合的只讀接口。該集合不會是不可變的,但您可以爲其他人提供只讀視圖。如果通過這樣的視圖暴露了這個集合,那麼它是有效的不可變的;爲所有意圖和目的。 – Servy
您可以像其他任何部署F#程序集一樣 - 因此,如果要從C#應用程序的'FSharp.Core'中使用不可變集合類型,只需添加對其的引用並將其標記爲'Copy Local'。 –
現有System.Collections.Generic接口中定義的大多數方法對於不可變集合都是無用的。例如,從IList接口中,不能實現set_Item,Add,Clear,Insert,Remove或RemoveAt。在不可變集合上實現這些接口在某些情況下可能會很方便,但在大多數情況下會要求拋出異常。出於這個原因,F#集合實現的唯一System.Collections.Generic接口是'IEnumerable ' –
phoog