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

How to extract data from iterating a sequence

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,所以我可以提取第一个元素。

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

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

for x in mappedSeq1 do
  let a, b = x

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

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

let firstOnly = mappedSeq |> Seq.map fst