2013-06-28 50 views
0

我有這些陣列:如何添加字符串數組chartcontrol系列

string[] Line1= data[3].ToString().Split(' '); 
string[] Line2= data[4].ToString().Split(' '); 

字符串數組只包含整數值。數據就像-20 -30 -12 0 10 20 30等等。

現在想將這些值在lineNeg1中加入Devexpress Chart Control Series without loop。

由於目前情況正在起作用,但由於循環,系統變得太慢。代碼示例是在這裏下:

 for (int i = 0; i < Line1.Length; i++) 
     { 
      int y = int.Parse(Line1[i]); 
      SeriesPoint pt = new SeriesPoint(i, y); 
      chartControl1.Series[0].Points.Add(pt); 
     } 

有什麼辦法,我可以這樣做:Add string array to series without using loop

也許像:series[0].addrange[Line1] < - Maybe this kind of something option is available

我知道國家是錯誤的,還是隻是想了解我在找什麼。

回答

1

你可以使用Linq:

int[] ints = Line1.Select(x => int.Parse(x)).ToArray(); 

它仍然是一個for循環,但現在它的隱患!編譯器需要將字符串逐個轉換爲整數,因爲它們根本不同,存儲方式也大不相同。字符串是對象,而整數是本地類型。它不像Javascript或PHP,不幸的是字符串和整數在飛行中轉換。所以這對你沒有多大幫助,它只是語義上的糖。

現在,就添加系列而言,問題可能是每次添加點時圖表都會重新繪製。你是否試過這樣的代碼:

chartControl1.SuspendLayout(); 
for (int i = 0; i < Line1.Length; i++) 
    { 
     int y = int.Parse(Line1[i]); 
     SeriesPoint pt = new SeriesPoint(i, y); 
     chartControl1.Series[0].Points.Add(pt); 
    } 
chartControl1.ResumeLayout();