получить значение y из серии диаграмм c #? - PullRequest
0 голосов
/ 28 ноября 2011

У меня есть чарт серии:

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;
    }

Но моя программа зависает ...

1 Ответ

1 голос
/ 28 ноября 2011

Возможно, это не единственная проблема с вашим кодом, но вы никогда не должны использовать конкатенацию строк в циклах (myMsg += 0 + " "; ...), потому что строки неизменяемы. Вместо этого используйте StringBuilder класс. Как это:

    StringBuilder sb = new StringBuilder(); 
    for (int i = 0; i < 10000; i++)
    {
        sb.Append("x");
    } 
    string x = sb.ToString();

Вот подробная информация о том, почему строки являются неизменяемыми и каковы их последствия: http://en.morzel.net/post/2010/01/26/Why-strings-are-immutable-and-what-are-implications-of-it.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...