以编程方式为.NET图表中的系列添加多维Y值

时间:2017-05-25 03:34:55

标签: c# .net charts data-visualization

在.NET Charting命名空间中,Series类的AddXY成员有DataPointCollection次重载:

  public int AddXY(object xValue, params object[] yValue)

这意味着如果某些SeriesChartType每个X值需要多个Y值,我可以这样说:

  my_series.Points.AddXY(x, y_1, y_2, y_3);

其中xy_1 y_2 y_3是双倍的,自params关键字

以来它没问题

但是现在我有一个函数接收某种类型的系列和double[] y值,如下所示:

private void add_a_pair(double x, double[] ys, SeriesChartType type)
{
    my_series.ChartType = type;
    my_series.addXY(x, ys);
}

编译器将抛出异常说:

  

系列数据点不支持类型的值    System.Double [] ,只能使用这些类型的值:Double,   Decimal,Single,int,long,uint,ulong,String,DateTime,short,   USHORT。

这有点令人困惑,因为其中一个重载明确定义它可以采用object[](我认为double[]将与之兼容)。我发现THIS QUESTION遇到了同样的事情,但动机和答案并不是我想要的。

我觉得它可能有用的唯一解决方法是这样的:

if(type.Equals(SeriesChartType.ErrorBar))
{
    my_series.AddXY(x, ys[0], ys[1], ys[2]);
}
if(....)
{
    my_series.AddXY(x, ys[0], ys[1]);
}
....

看起来非常愚蠢。关于C#I的基本缺失是什么?

【解决方案】请参阅TaW的评论。

0 个答案:

没有答案