如何将for x in seq的x转成seq
How to convert the x of for x in seq to seq
这是 的后续问题。
鉴于此代码块(csvData1 是一个 .csv 文件。)
let mappedSeq1 = seq { for csvRow in csvData1 do yield (csvRow.[2], csvRow.[5]) }
for x in mappedSeq1 do
printfn "%A" x
如果我不想将序列的每个元素解压缩到 x
和第二个 val 我们可以调用 y
怎么办?如何将 x
转换为序列,以便可以使用 Seq.fst
和 Seq.snd
?
我知道可以解压这些元素。我的问题是找到另一种方法来做到这一点,特别是考虑到 x
是 System.Tuple.
x
是两个 string
的元组(我假设 csvRow.[i]
是),因为这就是你从序列中 yield
的方式。你可以在你的 for
循环中解构它:
for (x,y) in mappedSeq1 do
printfn "%s - %s" x y
或者如果你不想解构 x,你可以使用 fst x
或 snd x
。
您的代码当前创建了一个序列,该序列读取行并生成第 2 列和第 5 列的元组。
如果要return一个Row0Col2的序列;行 0 列 5;行 1 列 2; Row1Col5(两列需要是同一类型),然后使用
yield! [ csvRow.[2], csvRow.[5] ]
或者如果你想要一系列序列 - [Row0Col2; Row0Col5]; [行 1 列 2; Ro1Col5],然后使用
yield [ csvRow.[2]; csvRow.[5] ]
yield!
将从列表中生成每个单独的项目,而 yield
只会按顺序生成列表。
这是
鉴于此代码块(csvData1 是一个 .csv 文件。)
let mappedSeq1 = seq { for csvRow in csvData1 do yield (csvRow.[2], csvRow.[5]) }
for x in mappedSeq1 do
printfn "%A" x
如果我不想将序列的每个元素解压缩到 x
和第二个 val 我们可以调用 y
怎么办?如何将 x
转换为序列,以便可以使用 Seq.fst
和 Seq.snd
?
我知道可以解压这些元素。我的问题是找到另一种方法来做到这一点,特别是考虑到 x
是 System.Tuple.
x
是两个 string
的元组(我假设 csvRow.[i]
是),因为这就是你从序列中 yield
的方式。你可以在你的 for
循环中解构它:
for (x,y) in mappedSeq1 do
printfn "%s - %s" x y
或者如果你不想解构 x,你可以使用 fst x
或 snd x
。
您的代码当前创建了一个序列,该序列读取行并生成第 2 列和第 5 列的元组。
如果要return一个Row0Col2的序列;行 0 列 5;行 1 列 2; Row1Col5(两列需要是同一类型),然后使用
yield! [ csvRow.[2], csvRow.[5] ]
或者如果你想要一系列序列 - [Row0Col2; Row0Col5]; [行 1 列 2; Ro1Col5],然后使用
yield [ csvRow.[2]; csvRow.[5] ]
yield!
将从列表中生成每个单独的项目,而 yield
只会按顺序生成列表。