C# c将参数传递到另一个方法

C# c将参数传递到另一个方法,c#,parameters,charts,delegates,zip,C#,Parameters,Charts,Delegates,Zip,我试图定义一个用于绘制图形的帮助器类,有人告诉我使用Zip方法将数组X和Y的每个元素传递到另一个方法中,但结果并不理想,有专家能指出我做错了什么吗?我在谷歌上找不到类似的情况 还是因为我太有想象力,这种方式根本不可行? 我看到过使用Zip方法计算一对x,y点的例子,但没有作为参数传入 情况:我的程序有2个函数和1个委托,第一个名为PlotXYAppend的函数用于调用委托PlotXYDelegate,该委托随后传入Points.addXY方法进行绘图,这就是我使用图表的原因。此处调用是出于线程安

我试图定义一个用于绘制图形的帮助器类,有人告诉我使用Zip方法将数组X和Y的每个元素传递到另一个方法中,但结果并不理想,有专家能指出我做错了什么吗?我在谷歌上找不到类似的情况

还是因为我太有想象力,这种方式根本不可行? 我看到过使用Zip方法计算一对x,y点的例子,但没有作为参数传入

情况:我的程序有2个函数和1个委托,第一个名为PlotXYAppend的函数用于调用委托PlotXYDelegate,该委托随后传入Points.addXY方法进行绘图,这就是我使用图表的原因。此处调用是出于线程安全原因

但我遇到的问题是委托或plotxyappend一次只取一对点,所以我想出了一个方法,就是创建另一个名为PlotXYPass的函数,将一对XY点传递到plotxyappend,以使其工作,但我认为有些问题我无法解决,IntelliSense告诉我他们不喜欢我在这个函数中输入的参数

我非常感谢你的帮助

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms.DataVisualization.Charting;


namespace LastTrial
{
    public class PlotHelper
    {
        double[] X = { 1, 2, 3, 4, 5, 6 };
        double[] Y = { 1, 2, 3, 4, 5, 6 };


        Chart chart;// declare chart as chart type
        Series dataSeries;// declare dataSeries as Series type



        private delegate int PlotXYDelegate(double x, double y);

        private void PlotXYAppend(Chart chart, Series dataSeries, double x, double y)
        {
            chart.Invoke(new PlotXYDelegate(dataSeries.Points.AddXY), new Object[] { x, y });
        }// this line invokes a Delegate which pass in the addXY method defined in Points, so that it can plot a new point on a chart.


        private void PlotXYPass(double[] X, double[] Y)
        {
            X.Zip(Y, (x, y) => this.PlotXYAppend(chart,dataSeries,x,y));
        }

// trying to pass in x,y points by extracting pairs of points from list []X and []Y into the function above which only takes a pair of x,y points
    }
}
private object PlotXYAppend (Chart chart, Series dataSeries, double x, double y)
{
    return chart.Invoke(new PlotXYDelegate(dataSeries.Points.AddXY), new Object[] { x, y });    
}

public IEnumerable<object> PlotXYPass (double[] X, double[] Y)
{
    return X.Zip<double, double, object>(Y, (x, y) => this.PlotXYAppend(this.chart, this.dataSeries, x, y));
}
var ph = new PlotHelper();
ph.chart = this.chart;
ph.dataSeries = this.chart.Series[0];
var result = ph.PlotXYPass(ph.X, ph.Y).ToList();