2016-11-28 56 views
4

,我有以下類型的有序序列:篩選順序由物業

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

我希望做的是那裏的多條記錄與同Id只取每個id的序列中最新的記錄(該序列已從有序查詢結果中生成)以及記錄Id不與其他記錄共享的記錄。

F#中是否有方法以這種方式生成新的序列?

+0

如果你的序列的底層實現保證了順序,你只需要使用'Seq.filter' – Sehnsucht

回答

4

如何:

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

這組中的物品放入元組序列,其中,第一項是ID,第二個是與該標識元件的序列。

然後,該映射將Seq.last應用於這些元組的第二個元素。

+0

這很好。謝謝。 –