大家下午好!
因此,我一直在尝试将 .NET 集合转换为功能数据结构的方法。我能得到的最好的结果就是先把它转换成一个序列,然后再转换成我想要的任何东西。
问题是这似乎破坏了类型推断,这显然是不安全的。
例子:
let a = new System.DirectoryServices.DirectorySearcher("<query>") in
let entries = a.FindAll ()
let entries_list =
let (entries_seq : seq<obj>) = Seq.cast entries_list in
Seq.toList entries_Seq
in
entries_list (* list of AD objects found from query, has type obj *)
为了对条目列表做任何有用的事情,我必须这样做:
entries_list :?> SearchResult
尝试将其概括为 seq<'a> 失败,因为编译器仍然要求我静态键入它的枚举数(这是有道理的)。
有没有办法避免这种情况?我开始认为这是以功能方式使用 .NET 数据结构的限制。
对不起,如果这是一个新手问题;总的来说,我对 F# 和函数式编程很熟悉(并且很喜欢它!)。干杯!
- 卡洛斯。