我正在处理一个我知道可以用C#解决的问题。我想向我的老板证明F#能够以更简洁的方式解决问题。然而,我对函数式编程的理解还很不成熟。F# - 在列表上执行非确定性分组
问题:
我用的“贸易”类的列表的工作。所述类的定义如下:
type Trade(brokerId : string, productId : string, marketId : string, buySideId : string, tradeDate : string, ruleId : int) = class
member this.BrokerId = brokerId
member this.ProductId = productId
member this.MarketId = marketId
member this.BuySideId = buySideId
member this.TradeDate = tradeDate
end
我需要能够组的交易,然后应用规则以每个所得的数据组的。
但是我不能保证该数据的分组,即确定分组将有可能改变每次程序运行时的规则 - 所以比如我可能要组:
- TradeDate,BrokerId
- TradeDate只有
- TradeDate,BrokerId,ACCOUNTID
...等等。
一旦我有了不同的群体,应用规则(比如'总TradeAmount大于10,000')就很容易(我认为)。
任何帮助/指针与创建一个功能导向的解决方案,这个问题将非常受欢迎。
非常感谢。
在程序的任何运行过程中,你如何知道要分组?你几乎可以肯定地用'Seq.groupBy'来做你想要的... – kvb 2010-07-24 03:51:57
这些分组将在数据库中进行配置。所以我会返回一个属性名称列表 - 这将不得不按照给定的顺序应用。 – Peanut 2010-07-24 03:54:25