我有这些数组:
string[] Line1= data[3].ToString().Split(' ');
string[] Line2= data[4].ToString().Split(' ');
字符串数组仅包含整数值。数据类似于-20 -30 -12 0 10 20 30
等等。
现在想要将lineNeg1
中的这些值添加到Devexpress Chart Control Series中而不需要循环。
现在,事情正在发挥作用,但由于循环,系统变得太慢。代码示例如下:
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]
&lt; - Maybe this kind of something option is available
我知道状态是错的,仍然只是想知道我在寻找什么。
答案 0 :(得分:1)
你可以使用Linq:
int[] ints = Line1.Select(x => int.Parse(x)).ToArray();
它仍然是一个for循环,但现在它被隐藏了!编译器需要逐个将字符串转换为int,因为它们是根本不同的东西并且存储方式完全不同。字符串是对象,而整数是本机类型。它不像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();