所以我有一个Map<int, Map<int, string>>
数据结构,我可以像这样打印出来:
aMap
|> Map.iter(fun key value -> value
|> Map.iter(fun k v -> printf "Foo: %d\nBar: %d\nValue: %s" key k v))
这很好用,但我想尝试将带有上述字符串格式的Map元素附加到seq<string>
什么是最有效的方式,同时仍然是&#34;功能&#34;?
答案 0 :(得分:1)
您始终可以将地图转换为序列:
aMap |> Map.toSeq
您也可以使用Map.map
进行其他转换(而不是Map.iter)。
通常,查看您正在使用的集合的参考部分会有所帮助: https://msdn.microsoft.com/ja-jp/library/ee353880.aspx
修改强>
aMap
|> Map.toSeq
|> Seq.collect(fun (k,v) ->
v
|> Map.toSeq
|> Seq.map(fun (x,y) -> sprintf "Foo: %d Bar: %d Value: %s" k x y))
|> Seq.iter(printfn "%A")
第2版:
aMap
|> Seq.collect(fun x ->
x.Value
|> Seq.map(fun y -> sprintf "Foo: %d Bar: %d Value: %s\n" x.Key y.Key y.Value))
|> Seq.iter(printfn "%A")