【问题标题】:How I get with GetEnumerator in Fsharp a seq out of a seq?我如何在 Fsharp 中使用 GetEnumerator 从 seq 中获取 seq?
【发布时间】:2015-02-02 07:27:44
【问题描述】:

对于我的项目,我想提取 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

【问题讨论】:

    标签: f# seq


    【解决方案1】:

    您需要使用类型System.Collections.Generic.IEnumerator&lt;'T&gt;,而不是System.Collections.IEnumerator。后者基本上是 C# 1.0 黑暗时期的残余,当时 .NET 中不存在泛型,因此它不知道元素的类型。

    【讨论】:

    • 啊!就是这样!谢谢!我用 F# 一个月了,还是有一些问题。
    • 如果这个问题太平庸,对不起。
    猜你喜欢
    • 2019-11-22
    • 1970-01-01
    • 1970-01-01
    • 2019-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多