Как извлечь данные из итерации последовательности
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 ответа
Решение
Вы можете использовать сопоставление с образцом, чтобы деконструировать кортеж
for (a, b) in mappedSeq1 do
// ...
или же
for x in mappedSeq1 do
let a, b = x
В качестве альтернативы для 2-х кортежей вы можете использовать встроенную функцию fst
а также snd
Использование Seq.map
а также fst
чтобы получить последовательность только первого компонента кортежа:
let firstOnly = mappedSeq |> Seq.map fst