1

まず、ここで間違った用語を使用していることは確かですが、誰かがコメントした場合は修正します。優しくしてください。

したがって、1chartsつのページに複数あり、それぞれに対して実質的に同じアクションを実行しています。わかりやすくするために、次chartsのように呼びます。、、chart1... chart2chartnnは20付近です。これをループにドロップして、すべての作業を1つの小さなコードチャンクで実行します。後で微調整する必要がある場合。for

したがって、私の質問は、オブジェクトを表すn部分(用語?)を変更して、これをより効率的に実行できるかどうかです。

すなわち:

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 に答える