F# 序号的第一列<;int*string*int>;到IEnumerable<;int>;

F# 序号的第一列<;int*string*int>;到IEnumerable<;int>;,f#,F#,我用的是F#。我有一个序列。我想取第一列(第一个int)并将其放入一个Inenumerable。之所以要这样做,是因为我正在使用RDotNet,并且我想调用这个函数:engine.CreateIntegerVector(System.Collections.Generic.IEnumerable)一个F#序列是一个IEnumerable,所以您只需要从元组的第一个元素中选取 这应该通过使用模式匹配fnc和地图来实现: let seqInt = yourSeq |> Seq.map (fun

我用的是F#。我有一个
序列
。我想取第一列(第一个int)并将其放入一个
Inenumerable
。之所以要这样做,是因为我正在使用RDotNet,并且我想调用这个函数:
engine.CreateIntegerVector(System.Collections.Generic.IEnumerable)

一个F#序列是一个IEnumerable,所以您只需要从元组的第一个元素中选取

这应该通过使用模式匹配fnc和地图来实现:

let seqInt = yourSeq |> Seq.map (fun (v,_,_) -> v)
一个F#序列是一个IEnumerable,所以你只需要从元组的第一个元素中选取

这应该通过使用模式匹配fnc和地图来实现:

let seqInt = yourSeq |> Seq.map (fun (v,_,_) -> v)

根据托尼的回答,我就是这么做的:


让reportLength=engine.CreateIntegerVector(relevantContents|>Seq.map(fun(a,b,c)->c))

根据Tony的回答,我就是这么做的:


让reportLength=engine.CreateIntegerVector(relevantContents |>Seq.map(fun(a,b,c)->c))

不确定fst类型不匹配。应为int*string*int->'a,但给定int*string->int,元组的长度不同,分别为3和2不确定fst类型不匹配。应该是int*string*int->'a,但是如果是int*string->int,元组的长度是3和2,我想你的意思是(a,b,c)->a?我想你的意思是(a,b,c)->a?我已经编辑了你的代码来突出显示代码。您可能需要检查它以确保它仍然反映您的意图。我已编辑了您的代码以突出显示代码。您可能需要检查它,以确保它仍然反映您的意图。