Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我们如何将序列分配给图表区域?_C#_C# 4.0 - Fatal编程技术网

C# 我们如何将序列分配给图表区域?

C# 我们如何将序列分配给图表区域?,c#,c#-4.0,C#,C# 4.0,我有一个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 h

我有一个
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";

但在我的例子中,我不能为每个字符串都指定一个字符串名。它需要是一个数组。我该如何解决这个问题呢?

我在评论中提出了一些澄清问题,但如果我偏离了对您所表达的情况的假设,我会这样做:

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];
我将根据对我评论的回复编辑我的答案

编辑:

根据您的评论:


我需要它是一个数组,因为我需要的图表区域的数量取决于可变数量的参数

您可能希望创建一个方法来创建
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.
}

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

我在评论中提出了一些澄清问题,但如果我偏离了您所表达的情况的假设,我会这样做:

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];
我将根据对我评论的回复编辑我的答案

编辑:

根据您的评论:


我需要它是一个数组,因为我需要的图表区域的数量取决于可变数量的参数

您可能希望创建一个方法来创建
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.
}

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

为什么它必须是一个数组?什么类型的数组?只有一个构造函数接受参数(类型为
string
)。您是否试图将
字符串
数组中的单个
字符串
值传递给
图表区域
的构造函数?我需要它是一个数组,因为我需要的图表区域数量取决于可变的参数数。我也尝试过:myString=I.ToString();面积[i]=新图表面积(myString);和chart.Series[i].ChartArea=Convert.ToString(i);然后,听起来好像您想将
ChartArea
对象的创建转换为一个方法,该方法接受
字符串
名称数组。我将编辑我的答案。为什么它必须是数组?什么类型的数组?只有一个构造函数接受参数(类型为
string
)。您是否试图将
字符串
数组中的单个
字符串
值传递给
图表区域
的构造函数?我需要它是一个数组,因为我需要的图表区域数量取决于可变的参数数。我也尝试过:myString=I.ToString();面积[i]=新图表面积(myString);和chart.Series[i].ChartArea=Convert.ToString(i);然后,听起来好像您想将
ChartArea
对象的创建转换为一个方法,该方法接受
字符串
名称数组。我将编辑我的答案。这是对答案的一个很好的解释,但我还需要解决的是,我没有字符串参数,我需要的图表区域的数量是基于一个整数参数。我需要对字符串名称进行编码吗?或者还有其他方法吗?@AditiM根据您的具体用例,有很多方法可以实现这一点。您可以使用一个包含所需“基本图表名称”(如“ChartArea”)的变量,然后在
foreach
循环中将整数附加到该变量中,并使用类似以下内容:
string baseName=“ChartArea”;baseName+=intParameterName.ToString()这是对答案的一个很好的解释,但我还需要解决的是,我没有字符串参数,我需要的图表区域的数量基于一个整数参数。我需要对字符串名称进行编码吗?或者还有其他方法吗?@AditiM根据您的具体用例,有很多方法可以实现这一点。您可以使用一个包含所需“基本图表名称”(如“ChartArea”)的变量,然后在
foreach
循环中将整数附加到该变量中,并使用类似以下内容:
string baseName=“ChartArea”;baseName+=intParameterName.ToString()