1

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

所以我charts在一个页面上有多个,我在每个页面上执行几乎相同的操作。出于演示目的,让我们称我charts为:chart1, chart2, ...,chartn其中n在 20 附近。我想做的是将它放在一个for循环中,并在一小段代码中执行所有工作,尤其是如果我以后必须调整它。

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

IE:

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

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

非常感谢!

4

2 回答 2

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

于 2013-03-20T03:29:00.993 回答
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();
}
于 2013-03-20T03:31:13.360 回答