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

本文关键字:对象 字符串 访问 | 更新日期: 2023-09-27 18:04:42

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

因此,我在一个页面上有多个charts,并且我在每个页面上执行几乎相同的操作。出于演示的目的,让我们把我的charts称为:chart1chart2。。。,chartn,其中n在20附近的某个地方。我想做的是将其放入for循环中,并在一个较小的代码块中执行所有工作,尤其是在以后必须对其进行调整时。

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

即:

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

我有一种感觉,你不能用字符串来做这件事,所以我想做一个foreach,但我不知道如何用图表来做。

非常感谢!

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

您应该将图表放在一个列表中。例如,这会生成一个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方法的对象上使用这种所谓的集合初始值设定项语法。

你能从这样的图表列表/数组/集合中访问图表吗?

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();
}