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()代码>