找到正确的类实例并调用其方法。 C#

时间:2016-06-02 15:08:39

标签: c#

我正在开发一个交易应用程序,它涉及订阅许多符号的引号(ticks)并在传入的ticks上运行算法。我有一个策略基类和Algo类,它继承了它。

public abstract class Strategy
{
    ...
    public int ID {get; set;}    
}


public class Algo : Strategy
{
   public void OnTick(Tick t) { // algo here }

}

我为每个交易的符号创建一个Algo Class实例,并为所有创建的实例保留一个List,每个实例都有一个唯一的ID

Dictionary<Algo, string> dicOfStrategies = new ...;   

Foreach(Symbol sym in listOfSymbols) //many symbols
{
    Algo a = new Algo();
    dicOfStrategies.Add(a, "IBM");
}

在传入的勾号上:

if(Tick.Symbol == dicOfStrategies[Symbol]
{
   dicOfStrategies[algo].OnTick()
}

我的问题是,使用相同的符号将传入的刻度线路由到正确的Algo实例的最有效方法是什么?

我是否为每个传入的刻度搜索dicOfStrategis并找到Algo实例匹配并调用其方法? ...将有1000个来自流的滴答声需要快速处理..有更好的方法吗?谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

回答你的问题:

&#34;使用相同的符号将传入的刻度线路由到正确的Algo实例的最有效方法是什么&#34;

Dictionary<string, Strategy>
  

字典|最适合高性能查找。

C#/.NET Fundamentals: Choosing the Right Collection Class

  

具有最佳性能的集合是Dictionary&lt;&gt;以及SortedList&lt;&gt;。

中占地面积最小的集合

.NET Collections: Comparing Performance and memory usage