C# C中动态变量名的替代方法#

C# C中动态变量名的替代方法#,c#,global-variables,instance-variables,C#,Global Variables,Instance Variables,我正在NinjaTrader中编写我的自定义指示符,它有一种基于C#的脚本语言。我想在不同的股票图表之间共享数据,但没有内在的方法来实现。每个指标都继承自一个指标类,当然,每个图表都运行所应用指标的唯一实例 例如,我希望能够将IBM的当前价格“发送”到AAPL图表中。从概念上讲,在“发送”图表上,我需要能够执行以下操作: 静态双IBM=190.72 但是,例如,当用户将chart ticker从IBM更改为DELL时,我现在需要如下内容: 静态双DELL=9.25 在我的“接收”图表上,我希望能

我正在NinjaTrader中编写我的自定义指示符,它有一种基于C#的脚本语言。我想在不同的股票图表之间共享数据,但没有内在的方法来实现。每个指标都继承自一个指标类,当然,每个图表都运行所应用指标的唯一实例

例如,我希望能够将IBM的当前价格“发送”到AAPL图表中。从概念上讲,在“发送”图表上,我需要能够执行以下操作:

静态双IBM=190.72

但是,例如,当用户将chart ticker从IBM更改为DELL时,我现在需要如下内容:

静态双DELL=9.25

在我的“接收”图表上,我希望能够做如下事情 印刷(戴尔)


因此,我的倾向是希望根据用户为图表选择的股票代码动态分配变量名,但我知道这在C#中是不可能的。那么,当存在一组几乎无限的潜在股票代码值时,存储和检索需要按股票代码名称编制索引的数据的一种好的替代方法是什么呢?e、 g:

var stocks=newdictionary();
股票。添加(“appl”,1234.56);
打印(库存[“应用”]);
您可以根据需要动态地向其中添加ticker名称和值,提供按ticker进行查找的功能,以及一整套其他有用的功能。您想要单个变量而不是集合的原因是什么?

创建一个对象:

public class Stock {
  public string Ticker{get; set;}
  public double Price {get; set;}
}
然后参考列表中所有可能的库存:

  List<Stock> allStocks = new List<Stock>();
   allStocks.Add(new Stock() { Ticker = "Dell", Price = 9.25 });

   allStocks.ForEach(stock => Print(string.Format("{0} : {1}", stock.Ticker, stock.Price) );
List allStocks=new List();
Add(newstock(){Ticker=“Dell”,Price=9.25});
ForEach(stock=>Print(string.Format(“{0}:{1}”,stock.Ticker,stock.Price));

使用集合听起来比使用单个变量更好,只是以前不需要使用它。我如何设置它,以便能够在包含类的两个单独实例之间共享字典内容?这似乎是一个单独的第二个问题,更多地涉及到如何设置类和依赖项至于如何表示数据,可能还有另一个问题。虽然第二个问题的答案可能会排除使用字典作为解决方案的一部分,但我明白你的观点,并将单独提问,谢谢。别忘了将此答案标记为“已接受”,因为它满足了您对动态命名变量集合的需求。
  List<Stock> allStocks = new List<Stock>();
   allStocks.Add(new Stock() { Ticker = "Dell", Price = 9.25 });

   allStocks.ForEach(stock => Print(string.Format("{0} : {1}", stock.Ticker, stock.Price) );