c# - 从两个 IEnumerable 创建一个 IEnumerable 队列
问题描述
我有两个IEnumerable
sstockDates
和stockClosing
,我想将它们放在一个队列中。
IEnumerable<DateTime> stockDates = stocks.Select(equity => equity.Date);
IEnumerable<decimal> stockClosing = stocks.Select(equity => equity.Close);
// create a queue
Queue<MovingAverage> movingAverageQueue = new Queue<MovingAverage>();
如何添加stockDates
和stockClosing
到新创建的movingAverageQueue
?
这是 MovingAverage 类:
namespace myBackEnd.Models
{
public class MovingAverage
{
public DateTime Date { get; set; }
public decimal Close { get; set; }
}
}
解决方案
您可以使用IEnumerable.Zip()
它,但是由于MovingAverage
帖子中没有显示该类,我只使用了示例属性:
movingAverageQueue = stockDates.Zip(stockClosing , (d, c) => new MovingAverage{ Date = d, Average = c});
如果它们都在股票中,并且您希望在某个日期平均收盘,那么您可以这样做:
var result = stocks.GroupBy(x=> x.Date.Date)
.Select(g => new MovingAverage{ Date = g.Key, Average = g.Average()});
请注意,在stocks.GroupBy(x=> x.Date.Date)
asx.Date
中是 DateTime,x.Date.Date
将是它的日期(没有时间),以便所有具有相同日期的分组都相同。
推荐阅读
- tensorflow - 在 GCP TPU 上嵌入 TPU 性能
- javascript - Easy Firebase Cloud Functions 组织
- javascript - 100% 高度的正文包含固定的导航栏“边距错误”
- glfw - 哪个线程会调用 GLFW 回调?
- javascript - 无法设置不和谐机器人自定义状态
- vue.js - 是否可以更改 vue 的网格系统尺寸?
- python - 使用 lambda 和 defaultdict 定义 Trie 树
- javascript - 输入正确密码后,如何停止再次显示密码提示?
- python - Python/Discord 当我尝试让 python 获取不和谐用户的用户 ID 时,它什么也不做,没有错误消息,也没有输出
- c# - C# asp web 表单 - 如何确保 Response.Flush() 内容输出首先被客户端接收然后只执行下一条语句?