【发布时间】:2011-09-25 10:32:43
【问题描述】:
我正在学习 F#,并且正在使用赔率比较服务 (ala www.bestbetting.com) 将理论付诸实践。 到目前为止,我有以下数据结构:
type price = { Bookie : string; Odds : float32; }
type selection = {
Prices : list<price>;
Name : string;
}
type event = { Name : string; Hour : DateTime; Sport : string; Selections : list<selection>; }
所以,我有几个来自多个来源的“事件”。而且我需要一种非常快速的方法来合并具有相同名称和时间的事件,并且一旦完成合并具有相同名称的不同选择的价格。
我考虑过获取第一个列表,然后对其他列表进行逐一搜索,当指定的字段匹配时返回一个包含两个列表合并的新列表。
我想知道是否有更快的方法来执行此操作,因为性能很重要。我已经看到了这个Merge multiple lists of data together by common ID in F# ...虽然这很有帮助,但我要求最好的性能解决方案。也许使用任何其他结构,它不是列表或其他合并它们的方式......所以任何建议将不胜感激。
谢谢!
【问题讨论】:
-
我将块引用更改为代码,以便突出显示语法。
-
顺便说一句,我在发布之前已经看到了这个stackoverflow.com/questions/4787226/…...虽然这很有帮助,但我要求最好的性能解决方案。谢谢。
-
@Jacobo:我认为您应该编辑问题以表明..
-
@Dan Abramov 非常感谢!你是怎么做到的?我尝试了但无法完成,所以我只是认为不支持 F# 之类的突出显示...再次感谢您。
-
为什么您引用的解决方案不可接受?性能需要提高多少?理想的解决方案将涉及一个哈希表,
groupBy会为您完成。
标签: f#