【问题标题】:Filter Sequence of Record Types by Property按属性过滤记录类型的序列
【发布时间】:2016-11-28 22:48:03
【问题描述】:

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

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

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

F#中有这样的方法可以生成新的序列吗?

【问题讨论】:

  • 如果你的序列的底层实现保证保持顺序,你只需要使用Seq.filter

标签: f# f#-3.0


【解决方案1】:

怎么样:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-03
    • 2019-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多