gpt4 book ai didi

c# - 时间序列的"Join"

转载 作者:行者123 更新时间:2023-11-30 16:37:01 24 4
gpt4 key购买 nike

我正在设计一个简单的内部框架来处理时间序列数据。鉴于 LINQ 是我目前的玩具锤,我想用它敲打所有东西。

我想在 TimeSeries 类中实现方法(Select()、Where() 等),以便我可以使用 LINQ 语法来处理时间序列数据

有些事情是直截了当的,例如(from x in A select x+10),给出一个新的时间序列。

组合两个或多个时间序列的最佳语法设计是什么?(from a in A from b in B select a+b) 不是很好,因为它表达了一个嵌套循环。也许有人加入?这应该对应于隐式时间变量上的连接。(我的想法对应于 lisp 'zip' 函数)


编辑: 有必要进行一些说明。

时间序列是一种依赖于时间的函数,例如股票报价。时间序列的组合可能是两个股票价格之间的差异,作为时间的函数。

Stock1.MyJoin(Stock2, (a,b)=>a-b)

是可能的,但是可以使用一些 LINQ 语法巧妙地表达吗?我希望自己在 class MyTimeSeries 中实现 LINQ 方法。

最佳答案

Union 听起来是正确的做法 - 不支持查询表达式,但我认为它表达了您的意思。

您可能有兴趣查看 MiscUtil 中基于范围的类这可以很好地用于时间。结合一些扩展方法的乐趣,您可以:

foreach (DateTime day in 19.June(1976).To(DateTime.Today).Step(1.Day()))
{
Console.WriteLine("I'm alive!");
}

我并不是说这应该取代您正在做的任何事情,只是说您可以采纳一些想法使它变得更加整洁。也请随意回馈 :)

关于c# - 时间序列的"Join",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/241470/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com