对于我的项目,我想提取seq>的seq。为此我想我可以使用GetEnumerator。之后我想比较头部(当前元素的Seq.head),如果它包含我选择的元素。问题是,如果我使用.Current它会给我回obj而不是seq。我做错了什么?
let convertElements (input:seq<seq<Elements>>) =
let en = input.GetEnumerator()
let rec loop (en:System.Collections.IEnumerator) =
match en.MoveNext() with
| true -> match (Seq.head en.Current) with
|AElement(_) -> createNewA andSoOn
|_ -> ()
| false -> ()
loop en
答案 0 :(得分:5)
您需要使用System.Collections.Generic.IEnumerator<'T>
类型,而不是System.Collections.IEnumerator
。后者基本上是C#1.0黑暗时代的遗留物,当.NET中没有泛型时,所以它不知道你的元素的类型。