有许多遗留接口以普通IEnumerable
的形式获取实体集合。通常,人们会在C#中将foreach(CertainTypeWeSureItemIs item in items)
转换为他们想要的任何类型。 IEnumerable并不直接转换为序列。在seq { for x in xs -> x }
中将其包装起来并没有多大帮助,因为它得到seq{obj}
。那我该怎么做F#?
答案 0 :(得分:16)
使用Seq.cast<T>
:
let al = new System.Collections.ArrayList()
al.Add(1) |> ignore
al.Add(2) |> ignore
al |> Seq.cast<int> |> Seq.iter(printf "%i")