对于我的项目,我想提取 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
最佳答案
您需要使用类型System.Collections.Generic.IEnumerator<'T>
,而不是 System.Collections.IEnumerator
。后者基本上是 C# 1.0 黑暗时代的残余,当时 .NET 中不存在泛型,因此它不知道元素的类型。
关于f# - 如何使用 Fsharp 中的 GetEnumerator 从 seq 中获取 seq?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27293658/