大家下午好!有沒有將Collection轉換爲F#序列的安全方法?
所以我一直在玩弄.NET集合到功能數據結構的方式。我已經能夠獲得的最好的結果是首先將它投射到seq,然後再投射到我想要的任何東西上。
問題是,這似乎打破了類型推斷,這顯然是不安全的。
例子:
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有用的,我不得不做的事:
entries_list :?> SearchResult
試圖把它推廣到一個序列<「一>失敗,因爲編譯器仍然要求我靜態地鍵入它的枚舉器(這是有道理的)。
有什麼辦法可以避免這種情況?我開始認爲這是以功能方式使用.NET數據結構的限制。
對不起,如果這是一個新手的問題;我對F#和一般的函數式編程都是綠色的(我很喜歡它!)。乾杯!
- Carlos。
做'let entries_seq:seq <_> ...'工作 - 這應該給一個強類型的序列 –
它沒有;我得到一個價值限制錯誤,這與我之前看到的一致。 –