访问时使用字符串代替对象

时间:2013-03-20 03:24:53

标签: c# object charts

首先我确定我在这里使用了错误的术语,但是如果有人评论它我会修复它。请温柔。

所以我在页面上有多个charts,我在每个页面上执行几乎相同的操作。出于演示目的,我们可以致电我的charts,例如:chart1chart2,...,chartn其中 n 位于附近的某处20.我想要做的是将它放在for循环中,并在一小段代码中执行所有工作,特别是如果我以后必须调整它。

所以我的问题是我是否可以改变代表对象的 n 部分(术语?),这样我就可以更有效地完成这项工作。

即:

for(int i = 0; i < 20; i++)
{
    String chartName = "chart" + i;
    chartName.Series.Clear();
}

我觉得你不能用字符串做这个,所以我正在考虑做一个foreach,但我不知道如何用图表做这个。

非常感谢!

2 个答案:

答案 0 :(得分:4)

您应该将图表放在列表中。例如,这会生成Chart个对象的列表(或任何图表类型):

List<Chart> charts = new List<Chart>();

然后你可以添加图表:

charts.Add(new Chart());

并使用它们:

for (int i = 0; i < charts.Count; i++)
{
    charts[i].Series.Clear();
}

当然,您可以将charts变量设为您班级中的一个字段。


您可以直接初始化列表(或数组,或字典 1 ),如下所示:

List<Chart> charts = new List<Charts>()
{
    new Chart(),
    new Chart(),
    existingChart1,
    existingChart2
};

或者,如果使用该语法创建新的对象数组......

Chart[] arrayOfCharts = new []
{
    new Chart(),
    new Chart(),
    existingChart1,
    existingChart2
};

...然后您可以使用AddRange一次添加多个对象:

charts.AddRange(arrayOfCharts);

1 )您可以在具有公共Add方法的任何对象上使用此所谓的集合初始化程序语法。

答案 1 :(得分:0)

您可以从列表/数组/图表集合中访问您的图表吗?

for (int i = 0; i <= 19; i++) {
  String chartName = "chart" + i;
  Charts(chartName).Series.Clear();
}

或者

for (int i = 0; i <= 19; i++) {
  String chartName = "chart" + i;
  Charts(i).Series.Clear();
}