我试图将嵌套的for循环转换为更实用的样式。
我一直在搞乱流水线,序列和数组,但无济于事。
以下是我所拥有的:
let allCarrierCodes = new List<string>()
for result in getAllCarrierCodesResults do
for carrierCode in result do
allCarrierCodes.Add(carrierCode.ToString())
getAllCarrierCodesResults
是&#34; obj list&#34; 什么是重写嵌套循环的一种很好的功能方法?
感谢。
答案 0 :(得分:10)
您可以使用Seq.collect
:
let allCodes = Seq.collect id getAllCarrierCodesResults
|> Seq.map string)
或
let allCodes = Seq.collect (Seq.map string) getAllCarrierCodesResults
然后,您可以将生成的seq<string>
转换为您想要的具体集合。
答案 1 :(得分:8)
Lee的回答比这更好,但我只是想提一下,你可以完全把这些嵌套循环放在列表理解中,瞧:
let allCarrierCodes =
[for result in getAllCarrierCodesResults do
for carrierCode in result do
yield carrierCode.ToString()]
看起来很有必要,但确实很有用。
此外,您应该使用string carrierCode
而不是carrierCode.ToString()
。保护您免受NRE的侵害,并且看起来更有用,可以获得额外的奖励: - )