我们如何将一个系列分配给ChartArea?

时间:2016-05-27 14:00:41

标签: c# c#-4.0

我有一个ChartArea area[]数组和一个Series series[]

数组

我需要做的是为每个ChartArea使用不同的Series

通常这样做:

Chart Chart0 = new Chart();
ChartArea ChartArea0 = new ChartArea("name");
Chart0.ChartAreas.Add(ChartArea0);
Series Series0 = new Series();
Chart0.Series.Add(Series0);
// link series to area here
Series0.ChartArea = "name";

但在我的情况下,我不能为每个人都有一个字符串名称。它需要是一个数组。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我在评论中提出了一些澄清问题,但如果我对你所表达的情况做出假设,那就是我要做的事情:

var sourceStringArray = new string[] { "ChartArea1Name" };

Chart Chart0 = new Chart();
ChartArea ChartArea0 = new ChartArea(sourceStringArray[0]);
Chart0.ChartAreas.Add(ChartArea0);
Series Series0 = new Series();
Chart0.Series.Add(Series0);
// link series to area here
Series0.ChartArea = sourceStringArray[0];

我会根据对评论的回复编辑我的答案。

修改

根据您的评论:

  

我需要它成为一个数组,因为我需要的ChartAreas数量取决于可变数量的参数

您可能想要创建一个创建ChartArea个对象的方法。类似的东西:

private List<ChartArea> CreateChartAreas(string[] chartAreaNames)
{
    var chartAreaInstances = new List<ChartArea>();

    foreach (var chartAreaName in chartAreaNames)
    {
        var tempChart = new Chart();
        var tempChartArea = new ChartArea(chartAreaName);
        tempChart.ChartAreas.Add(tempChartArea);
        var tempSeries = new Series();
        tempChart.Series.Add(tempSeries);
        tempSeries.ChartArea = chartAreaName;
    }

    return chartAreaInstances;
}

然后在主代码中,执行以下操作:

var sourceStringArray = new string[] { "ChartArea1Name", "ChartArea2Name" };

var chartAreas = CreateChartAreas(sourceStringArray);
foreach (var chartArea in chartAreas)
{
    // Do something with your chart area instances.
}

免责声明:我没有测试过此代码,因为我不知道您的具体用例是什么。