0

我正在尝试创建一个名为“系列”的静态全局数组。但是其中的字符串数量应该取决于 nummericUpDown 计数器。我尝试了很多变化,导致很多错误变化。我的代码看起来像这样,靠近我的代码顶部:

public partial class Form1 : Form
{
    static string[] series;

因此,在我将数组设为全局之后,我想设置它的大小。由于nummericUpDown可以上下,我先擦除数组(导致错误)后来我想用{“M1”,“M2”,“M3”......等等}我应该如何编写这段代码它会起作用吗?

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

    }
4

3 回答 3

0

您只需要将您的系列变量设置为正确大小的新数组。这样做将清除之前数组中的所有先前值。

if (series.Length > 0) { series = new string[numericUpDown1.Value]; }
于 2012-06-29T12:37:41.373 回答
0

AList<string>将是一个更好的主意。但是如果你真的必须使用一个数组:

我建议您最初将数组定义为: static string[] series = new string[0];

然后,如果向上/向下变化:

Array.Resize(ref series, newSize);

这将允许重新调整现有阵列的大小。但是请注意,如果大小减小,您将丢失数据。

于 2012-06-29T12:40:12.360 回答
0

嗨,现在像这样重写它并且它有效,谢谢你的回答!

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(); }
}
于 2012-06-29T12:56:42.527 回答