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

C# 访问对象时使用字符串代替对象,c#,object,charts,C#,Object,Charts,首先,我肯定我在这里使用了错误的术语,但如果有人对它发表评论,我会纠正它。请温柔一点 因此,我在一个页面上有多个图表,并且在每个图表上执行几乎相同的操作。出于演示目的,让我们调用我的图表类似于:chart1,chart2,…,chartn,其中n在20附近。我想做的是将其放入for循环中,并在一个较小的代码块中执行所有工作,特别是如果我以后必须对其进行调整的话 所以我的问题是,我是否可以改变表示对象的n部分(术语?),以便更有效地完成这项工作 i、 e: for(int i=0;i

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

因此,我在一个页面上有多个
图表
,并且在每个图表上执行几乎相同的操作。出于演示目的,让我们调用我的
图表
类似于:
chart1
chart2
,…,
chartn
,其中n在20附近。我想做的是将其放入
for
循环中,并在一个较小的代码块中执行所有工作,特别是如果我以后必须对其进行调整的话

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

i、 e:

for(int i=0;i<20;i++)
{
字符串chartName=“chart”+i;
chartName.Series.Clear();
}
我有一种感觉,你不能用字符串来做这件事,所以我想用
foreach
来做,但我不知道如何用图表来做


非常感谢

你应该把图表放在一个列表中。例如,这将创建一个
图表
对象列表(或任何图表类型):

并使用它们:

for (int i = 0; i < charts.Count; i++)
{
    charts[i].Series.Clear();
}
或者,如果使用该语法创建新的对象数组

Chart[] arrayOfCharts = new []
{
    new Chart(),
    new Chart(),
    existingChart1,
    existingChart2
};
…然后您可以使用
AddRange
一次添加多个对象:

charts.AddRange(arrayOfCharts);


1) 您可以在任何具有公共
Add
方法的对象上使用这种所谓的集合初始值设定项语法。

您应该将图表放入列表中。例如,这将创建一个
图表
对象列表(或任何图表类型):

并使用它们:

for (int i = 0; i < charts.Count; i++)
{
    charts[i].Series.Clear();
}
或者,如果使用该语法创建新的对象数组

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你能从这样的图表列表/数组/集合中访问你的图表吗

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

用于(int i=0;我真的不确定这里的问题是什么。你能试着提供一些更多的信息吗?你真的应该使用数组/列表/对象集合…但是如果你真的需要唯一的变量,看看我以前对类似问题的回答-我猜你有名为
chart1
chart2
,等等的变量你想在它们之间循环吗?你的想法是:如果我能构建名称
“chart1”
以某种方式作为一个字符串,并将其解析为实际的
chart1
变量,然后我就可以使用它了。对吗?哦,Virtlink已经给了你答案。我真的不确定这里的问题是什么。你能试着提供更多信息吗?你真的应该使用数组/列表/对象集合…但是看看我的上一篇文章如果你真的需要唯一的变量,我们会回答类似的问题-我猜你有名为
chart1
chart2
,等等的变量,你想循环使用它们吗?你的想法是:如果我能建立名称
“chart1”
以某种方式作为字符串,并将其解析为实际的
chart1
变量,然后我就可以使用它了。对吗?哦,Virtlink已经给了你答案。太好了:)这正是我要找的。当我
m研究它时,我对一些东西很好奇(我这里不需要它)。你能一次将多个对象添加到列表中吗?例如,
charts.add(chart1,chart2,chart3)
或类似的东西?我知道我刚才写的东西不起作用,但还有其他方法吗?有点像一次声明几个变量。谢谢!
charts.AddRange(新[]{chart1,chart2,chart3})
将允许您向图表列表中添加许多图表对象。太好了:)这正是我要找的。当我
m在做这件事时,我对一些东西感到好奇(我在这里并不真正需要它)。您能一次向列表中添加多个对象吗?即
图表。添加(图表1、图表2、图表3)
或者类似的东西?我知道我刚才写的东西不起作用,但是还有其他方法吗?有点像一次声明几个变量。谢谢!
charts.AddRange(新[]{chart1,chart2,chart3})
将允许您将许多图表对象添加到图表列表中。
for (int i = 0; i <= 19; i++) {
  String chartName = "chart" + i;
  Charts(i).Series.Clear();
}