c# - 基于指定的键间隔对C#中的SortedDictionary求和
问题描述
在根据指定的间隔进行值的总和后,在这种情况下,它在 0.5 的间隔内对键的值求和
目前,它是在 SortedDictionary 上的 foreach 的帮助下完成的,但有没有其他有效的方法可以做到这一点,比如 LINQ?这将真正有助于优化代码以解决性能问题。
当前代码实现:
private NewMarketPrice[] ConsolidateBids(double tickSize, IEnumerable<NewMarketPrice> bids)
{
SortedDictionary<double, int> consolidatedBids =
new SortedDictionary<double, int>(new HighestPriceComparer());
double lowestBid = Double.MaxValue;
foreach(NewMarketPrice bid in bids)
{
if(bid.Price < lowestBid)
{
lowestBid = bid.Price;
}
double consolidatedPrice = RoundDownToNearestInterval(bid.Price, tickSize);
int consolidatedQuantity;
if(!consolidatedBids.TryGetValue(consolidatedPrice, out consolidatedQuantity))
{
consolidatedQuantity = 0;
consolidatedBids.Add(consolidatedPrice, 0);
}
consolidatedQuantity += bid.Qty;
consolidatedBids[consolidatedPrice] = consolidatedQuantity;
}
解决方案
推荐阅读
- c - 更新 GLIBC,构建跨 GCC,获得“糟糕的 ELF 解释器”
- javascript - 我希望我的 div 在我的浏览器调整大小时移动
- javascript - 在一段特定文本之后替换给定长度的子字符串
- javascript - 仅在单击的元素上显示组件
- amazon-web-services - AWS IAM s3:前缀
- unreal-engine4 - 物理资产中的无法旋转约束
- automation - 无法启动 webkit 或与 playwright 截屏
- python - Python:将日志记录模块与 configparser 或 argparser 一起使用
- javascript - 使用 Leaflet 扩展自定义图标的“可点击”区域
- c# - 不使用 SSL 或 TLS 时 MailKit 中的 SSL 或 TLS 连接错误