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

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

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

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

最佳答案

怎么样:

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

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

然后映射将 Seq.last 应用于这些元组的第二个元素。

关于f# - 按属性过滤记录类型序列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40845925/

10-09 01:55
查看更多