【发布时间】:2014-08-19 15:12:05
【问题描述】:
我需要对类型为的列表进行排序
ListToSort val: (string*Seq<string>) list
我的想法是按序列的长度对这个列表进行排序
我正在使用命令 List.Sortby snd 和 Seq.Length 但我无法使其工作..
有什么想法吗? 谢谢
编辑: 代码的一个更清晰的想法是(我要排序的列表是由 Seq.grouby 创建的,它将原始列表中的重复元素分组)
let grouped =
OriginalList
|> Seq.groupBy (fun value -> if value = value then value else "else" )
|> Seq.toList
|> Seq.Sortby.... // sort the list by the length of the sequence
【问题讨论】:
-
如果您向我们展示您的尝试,我们可以更直接地解决令您困惑的问题。
-
或许
ListToSort |> List.sortBy(fun (_, s) -> Seq.length s) -
列表中的元素是元组。要访问元组的第二部分(序列),可以使用内置函数
snd。 -
感谢 vcsjones!成功了!
-
(fun value -> if value = value then value else "else" )可以替换为id