Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/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#将图表上的Y值相加_C#_Winforms_Visual Studio_Charts - Fatal编程技术网

C#将图表上的Y值相加

C#将图表上的Y值相加,c#,winforms,visual-studio,charts,C#,Winforms,Visual Studio,Charts,我正在尝试将列表添加到图表中。此列表包含2和4 foreach (decimal D in numbers) { barChart.Series[0].Points.AddXY(1, D); } 它需要将D添加到X轴上的索引1中。然而,这在X1处仅输出4而不是6。当它到达列表中的4时,它将覆盖其中的2,而不是添加到其中(生成6)。如何使其添加而不是覆盖 编辑:我显然没有提供足够的信息。我正在使用Windows窗体。我使用的图表位于Visual Studio 2015的数据部分。您误解了

我正在尝试将列表添加到图表中。此列表包含2和4

foreach (decimal D in numbers)
{
    barChart.Series[0].Points.AddXY(1, D);
}
它需要将D添加到X轴上的索引1中。然而,这在X1处仅输出4而不是6。当它到达列表中的4时,它将覆盖其中的2,而不是添加到其中(生成6)。如何使其添加而不是覆盖


编辑:我显然没有提供足够的信息。我正在使用Windows窗体。我使用的图表位于Visual Studio 2015的数据部分。

您误解了
AddXY
方法的含义

它不会更改y或任何值

AddXY
表示将新的
DataPoint
添加到
Points
集合中

在代码中,每个点的x值为
1
,y值为
2
4
。为此,您可能会写:

barChart.Series[0].Points[0].YValues[0] += D;
如果您的数字是小数,则需要转换为double,这是所有图表值的基本数字类型:

barChart.Series[0].Points[0].YValues[0] += (double)D;

请先阅读,然后再问什么图表?它是一个插件,一个你制作的模型,谷歌有谷歌图表来实现条形图吗?请指定您的目标:Winforms、WPF、ASP。。?始终正确标记您的问题!-AddXY表示将新的数据点添加到点集合中。每个点的x值为1,(2)个点的y值分别为2和4。它不会改变y值。为此,您可以编写:
barChart.Series[0]。Points[0]。yValue[0]+=D
问题不应该包含答案。或者发表你自己的答案,或者如果TaW的帖子回答了这个问题,请接受这个答案。请告诉我应该如何进一步编辑我的问题。如果它是正确的,请不要投反对票。这很有效!非常感谢。如果这样做是正确的,我的工作代码已经被编辑到我的答案中了。拉斯特克指出,没关系,我不应该在我的问题中编辑我自己的答案。无论如何,确保你有一个try语句,因为如果你还没有任何点,它会抛出一个索引超出范围的异常。是的,你是对的。但不添加所有必要的检查对于SO答案来说是很正常的。它们展示了如何使代码工作,而不是如何使其完美、安全等。。根据您的要求,直接检查可用的点可能比try/catch好。以下是我正在使用的代码:try{barChart.Series[0]。Points[0]。yvalue[0]+=(double)d;}catch{barChart.Series[0]。Points.AddXY(1,d);}很好。替代方案可能如下所示:
if(barChart.Series[0].Points.Count>0)barChart.Series[0].Points[0].yValue[0]+=(double)d;else条形图.系列[0].点.AddXY(1,d)