我正在尝试创建一个名为"series“的静态全局数组。但是它内部的字符串数量应该取决于nummericUpDown计数器。我尝试了很多变体,导致了很多错误变体。我的代码看起来像这样,接近我的代码的顶部:
public partial class Form1 : Form
{
static string[] series;因此,在我将数组设置为全局数组之后,我想设置它的大小。由于nummericUpDown可以上下移动,我首先擦除数组(导致错误),然后我想用{ "M1","M2","M3“......etc}填充它}我应该如何编写此代码才能正常工作?
private void numericUpDown1_ValueChanged_1(object sender, EventArgs e)
{
if (numericUpDown1.Value < 1) { numericUpDown1.Value = 1; }
int i;
series[0] = "x";
if (series.Length > 0) { Array.Clear(series, 0, series.Length); }
for (i = 0; i < numericUpDown1.Value; i++) { series[i] = "M" + i.ToString(); }
}发布于 2012-06-29 20:37:41
您只需将序列变量设置为具有正确大小的新数组。这样做将清除数组中以前的所有值。
if (series.Length > 0) { series = new string[numericUpDown1.Value]; }发布于 2012-06-29 20:40:12
List<string>将是一个更好的主意。但是如果你真的需要使用数组:
我建议您最初将数组定义为: static string[] series = new string;
然后,如果向上/向下发生变化:
Array.Resize(ref series, newSize);这将允许重新调整现有阵列的大小。但是,请注意,如果大小减小,您将丢失数据。
发布于 2012-06-29 20:56:43
嗨,现在像这样重写它,它工作了,谢谢你的回答!
private void numericUpDown1_ValueChanged_1(object sender, EventArgs e)
{ if (numericUpDown1.Value < 1) { numericUpDown1.Value = 1; }
series = new string[Convert.ToInt16(numericUpDown1.Value)];
int j=series.Length;
for (int i = 0; i < j; i++) { series[i] = "M" + i.ToString(); }
}https://stackoverflow.com/questions/11261750
复制相似问题