按属性过滤记录类型的顺序

时间:2016-11-28 13:50:09

标签: f# f#-3.0

我有一个以下类型的有序序列:

type Comparison<'a when 'a :> IKey > = {Id: string; src: 'a; dest: 'a}

我想要做的是,有多个记录具有相同的Id,只能获取每个id序列中的最新记录(序列已从有序查询结果生成)以及不与其他记录共享Id的记录。

F#中是否有方法以这种方式生成新序列?

1 个答案:

答案 0 :(得分:4)

怎么样:

items 
|> Seq.groupBy (fun x -> x.Id) 
|> Seq.map (snd >> Seq.last)

这将项目分组为一系列元组,其中第一项是ID,第二项是具有该Id的元素序列。

然后地图将Seq.last应用于那些元组的第二个元素。