假设我有两个列表:
let listOfValues = [100..105] //can be list of strings or whatever
let indexesToSortBy = [1;2;0;4;5;3]
Run Code Online (Sandbox Code Playgroud)
现在我需要listOfValues_sorted:102;100;101;105;103;104
它可以通过zip"转换"到Tuple 来完成:
let listOfValues_sorted = listOfValues
|> Seq.zip indexesToSortBy
|> Seq.sortBy( fun x-> fst x)
|> Seq.iter(fun c -> printfn "%i" (snd c))
Run Code Online (Sandbox Code Playgroud)
但我想,有更好的解决方案吗?
我认为你的解决方案非常接近.我会这样做的
let listOfValues_sorted =
listOfValues
|> Seq.zip indexesToSortBy
|> Seq.sortBy fst
|> Seq.toList
|> List.unzip
|> List.head
Run Code Online (Sandbox Code Playgroud)
你可以fun x -> fst x简单地崩溃fst.然后unzip得到你想要的列表
| 归档时间: |
|
| 查看次数: |
118 次 |
| 最近记录: |