我一直在为不同的控件创建数组,如下所示:
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];
有没有办法创建它们以便我不需要指定大小/长度?即是否可以使这些控制数组的大小可变?
谢谢!
答案 0 :(得分:5)
如果要允许任意数量的元素,则必须为数组指定长度 使用List类,如此
List<TextBox> textBoxList=new List<TextBox>();
并将控件添加到此集合中
textBoxList.Add(new TextBox());
答案 1 :(得分: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();
或者只是使用列表......
答案 2 :(得分:2)
List<>
是一个好主意,但确实有一些开销。如果您“使用”System.Linq,也可以执行此操作,并假设controls
变量指向控件的集合:
Array_TextBoxes = controls.OfType<TextBox>().ToArray();
此外,如果您更喜欢列表而不是数组,那么您也可以这样做:
List<TextBox> textBoxes = controls.OfType<TextBox>().ToList();
最后,在你的字段和变量名中使用像“Array_”这样的前缀通常被认为是不好的风格。