在WPF C#中,在代码背后,我必须动态创建一个Canvas数组(每个Canvas也是Children控件,如Label,TextBox,Button等。)
Canvas[] cv = new Canvas[myInt];
Label[] l = new Label[myInt];
TextBox[] tb = new TextBox[myInt];
...
Canvas.Children.Add(...);
可以动态添加或删除每个Canvas。问题是我必须给Canvas数组一个长度,如果其中一个Canvas被删除,索引仍将保留,后面的元素不能向上推。如果稍后我添加新的画布,新的Canvas可能会超出范围,除非我从头开始实例化一个非常大的数组。
有更好的解决方案吗? ArrayList,List还是其他什么?
答案 0 :(得分:3)
这似乎很明显,但由于您事先并不知道要存储的元素数量应该使用List<Canvas>
,List<Label>
等等,因此您可以使用方法list.Add()
和list.Remove()
。
不要使用ArrayList,您希望您的数据是强类型的,并且能够动态添加和删除项目 - 因此List<T>
符合要求。