如何从迭代序列​​中提取数据

时间:2016-09-13 19:30:11

标签: f# seq

csvData1包含.csv文件中的数据。我已经在电子表格中的两个列中创建了一个序列 ("GIC-ID", "COVERAGE DESCRIPTION")

let mappedSeq1 = 
   seq { for csvRow in csvData1 do yield (csvRow.[2], csvRow.[5]) }

查看Visual Studio调试器x最终成为System.Tuple<string,string>

for x in mappedSeq1 do
    printfn "%A" x
    printfn "%A" x.ToString

这是执行

的结果

for x in mappedSeq1

("GIC-ID", "COVERAGE DESCRIPTION")
<fun:main@28>

我很难弄清楚如何访问x,所以我可以提取第一个元素。

2 个答案:

答案 0 :(得分:1)

您可以使用模式匹配来解构元组

for (a, b) in mappedSeq1 do
  // ...

for x in mappedSeq1 do
  let a, b = x

或者对于2元组,您可以使用内置函数fstsnd

答案 1 :(得分:1)

使用Seq.mapfst获取元组的第一个组件的序列:

let firstOnly = mappedSeq |> Seq.map fst