从c#图表系列中获取y值?

从c#图表系列中获取y值?,c#,charts,C#,Charts,我有图表系列: Series[] tempSeries = new Series[sensorNum]; // Series to hold current/past temperature data for plotting, for each sensor 我想补充以下几点: tempSeries[i].Points.AddXY(current_time, temp_F[i]); // Add new temperature data to series 现在我想把序

我有图表系列:

Series[] tempSeries = new Series[sensorNum];    // Series to hold current/past temperature data for plotting, for each sensor
我想补充以下几点:

tempSeries[i].Points.AddXY(current_time, temp_F[i]);        // Add new temperature data to series
现在我想把序列转换成字符串,通过套接字发送

问题是如何从序列中获得Y值

我试过这个:

private string sendAll() {
        string myMsg = "";
        double[,] lastTemp = new double[4, 1200];
        double[,] lastWind = new double[4, 1200];
        for (int i = 0; i < 4; i++) {
            for (int j = 0; j < 1200; j++){
                try
                {
                    lastTemp[i, j] = tempSeries[i].Points[j].YValues[0];
                    myMsg += lastTemp[i, j] + " ";
                }
                catch (Exception ex) {
                    lastTemp[i, j] = 0;
                    myMsg += 0 + " ";
                }
            }
        }
        myMsg += "; ";

        for (int i = 0; i < 4; i++)
        {
            for (int j = 0; j < 1200; j++)
            {
                try
                {
                    lastWind[i, j] = windSeries[i].Points[j].YValues[0];
                    myMsg += lastWind[i, j] + " ";
                }
                catch (Exception ex)
                {
                    lastWind[i, j] = 0;
                    myMsg += 0 + " ";
                }
            }
        }
        MessageBox.Show(myMsg);

        return myMsg;
    }
私有字符串sendAll(){
字符串myMsg=“”;
double[,]lastTemp=新的double[41200];
double[,]lastWind=新的double[41200];
对于(int i=0;i<4;i++){
对于(int j=0;j<1200;j++){
尝试
{
lastTemp[i,j]=tempSeries[i]。点[j]。Y值[0];
myMsg+=lastTemp[i,j]+';
}
捕获(例外情况除外){
lastTemp[i,j]=0;
myMsg+=0+“”;
}
}
}
myMsg+=“;”;
对于(int i=0;i<4;i++)
{
对于(int j=0;j<1200;j++)
{
尝试
{
lastWind[i,j]=windSeries[i]。点[j]。Y值[0];
myMsg+=lastWind[i,j]+';
}
捕获(例外情况除外)
{
最后风[i,j]=0;
myMsg+=0+“”;
}
}
}
MessageBox.Show(myMsg);
返回myMsg;
}

但是我的程序正在冻结…

也许这不是代码的唯一问题,但是您不应该在循环中使用字符串串联(
myMsg+=0+“”;
…),因为字符串是不可变的。改用
StringBuilder
class。像这样:

    StringBuilder sb = new StringBuilder(); 
    for (int i = 0; i < 10000; i++)
    {
        sb.Append("x");
    } 
    string x = sb.ToString();
StringBuilder sb=新建StringBuilder();
对于(int i=0;i<10000;i++)
{
某人附加(“x”);
} 
字符串x=sb.ToString();
以下是有关字符串为何不可变以及其后果的详细信息: