我有一个以下类型的有序序列:
type Comparison<'a when 'a :> IKey > = {Id: string; src: 'a; dest: 'a}
我想要做的是,有多个记录具有相同的Id
,只能获取每个id序列中的最新记录(序列已从有序查询结果生成)以及不与其他记录共享Id的记录。
F#中是否有方法以这种方式生成新序列?
答案 0 :(得分:4)
怎么样:
items
|> Seq.groupBy (fun x -> x.Id)
|> Seq.map (snd >> Seq.last)
这将项目分组为一系列元组,其中第一项是ID,第二项是具有该Id的元素序列。
然后地图将Seq.last应用于那些元组的第二个元素。