2014-12-04 1 views
1

내 프로젝트에서 seq> seq를 꺼내고 싶습니다. 이를 위해 GetEnumerator를 사용할 수 있다고 생각했습니다. 그 후에 선택한 요소가 포함되어 있으면 머리글 (현재 요소의 Seq.head와 비교)을 원합니다. 문제는, 제가 .Current를 사용한다면 그것은 seq 대신에 obj를 다시 제공한다는 것입니다. 내가 잘못 했어?어떻게 GetEnumerator와 Fsharp에서 seq 중 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 

답변

5

당신은 오히려 System.Collections.IEnumerator보다, 유형 System.Collections.Generic.IEnumerator<'T>를 사용해야합니다. 후자는 기본적으로 .NET에서 generics가 존재하지 않았던 C# 1.0의 어두운시기의 잔재이므로 요소 유형을 알지 못합니다.

+0

아! 그거였다! 고맙습니다! 나는 한달 동안 F #을 사용하지만 여전히 문제가 있습니다. – BioHolic

+0

질문이 너무 진부했다면 부탁하십시오. – BioHolic

관련 문제