首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按照updown的大小创建全局可用数组

按照updown的大小创建全局可用数组
EN

Stack Overflow用户
提问于 2012-06-29 20:25:55
回答 3查看 118关注 0票数 0

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

代码语言:javascript
复制
public partial class Form1 : Form
{
    static string[] series;

因此,在我将数组设置为全局数组之后,我想设置它的大小。由于nummericUpDown可以上下移动,我首先擦除数组(导致错误),然后我想用{ "M1","M2","M3“......etc}填充它}我应该如何编写此代码才能正常工作?

代码语言:javascript
复制
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(); }

    }
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-29 20:37:41

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

代码语言:javascript
复制
if (series.Length > 0) { series = new string[numericUpDown1.Value]; }
票数 0
EN

Stack Overflow用户

发布于 2012-06-29 20:40:12

List<string>将是一个更好的主意。但是如果你真的需要使用数组:

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

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

代码语言:javascript
复制
Array.Resize(ref series, newSize);

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

票数 0
EN

Stack Overflow用户

发布于 2012-06-29 20:56:43

嗨,现在像这样重写它,它工作了,谢谢你的回答!

代码语言:javascript
复制
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(); }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11261750

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档