【问题标题】:Creating variable sized arrays创建可变大小的数组
【发布时间】:2013-04-09 13:15:59
【问题描述】:

我一直在为不同的控件创建数组,如下所示:

private TextBox[] Array_TextBoxes;
private CheckBox[] Array_CheckBoxes;
private RadioButtonList[] Array_radioButton;

Array_TextBoxes= new TextBox[4];
Array_CheckBoxes= new CheckBox[5];
Array_radioButton= new RadioButtonList[10];

有什么方法可以创建它们以便我不需要指定大小/长度? IE。是否有可能使这些控制数组可变大小?

谢谢!

【问题讨论】:

标签: c# asp.net arrays dynamic arraylist


【解决方案1】:

如果你想允许任意数量的元素,数组必须指定一个长度 使用List 类,像这样

List<TextBox> textBoxList=new List<TextBox>();

并将控件添加到此集合中

 textBoxList.Add(new TextBox());

【讨论】:

    【解决方案2】:

    您可以将它们作为列表开始,然后转换为数组:

    使用.Add向这些添加内容:

    List<TextBox> _TextBoxes = new List<TextBox>();
    List<CheckBox> _CheckBoxes =  new List<CheckBox>();
    List<RadioButtonList> _RadioButton = new List<RadioButtonList>();
    

    然后转换为数组:

    TextBox[] Array_TextBoxes = List<TextBox> _TextBoxes.ToArray();
    CheckBox[] Array_CheckBoxes = List<CheckBox> _CheckBoxes.ToArray();
    RadioButtonList[] Array_radioButton = List<RadioButtonList> _radioButton.ToArray();
    

    或者只使用列表...

    【讨论】:

      【解决方案3】:

      List&lt;&gt;,正如其他人所建议的那样,是一个好主意,但它确实有一些开销。如果您“使用” System.Linq,也可以这样做,并假设 controls 变量指向控件的集合:

      Array_TextBoxes = controls.OfType<TextBox>().ToArray();
      

      此外,如果您更喜欢使用列表而不是数组,您也可以这样做:

      List<TextBox> textBoxes = controls.OfType<TextBox>().ToList();
      

      最后,在字段和变量名中使用“Array_”之类的前缀通常被认为是一种糟糕的风格。

      【讨论】:

        猜你喜欢
        • 2019-06-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-08
        相关资源
        最近更新 更多