2011-04-03 129 views
1

的动态的和不可改变的阵列在WPF C#,在后面的代码,我要动态地创建画布的一个阵列(每个帆布也儿童控制等标签,文本框,按钮等)故障与对照

Canvas[] cv = new Canvas[myInt]; 
Label[] l = new Label[myInt]; 
TextBox[] tb = new TextBox[myInt]; 
... 
Canvas.Children.Add(...); 

每个Canvas都可以动态添加或删除。问题是我必须给Canvas数组一个长度,并且如果其中一个Canvas被移除,索引将仍然保留,并且之后的元素不能被向上推。如果稍后我添加新的Canvases,新的Canvas可能有可能超出范围,除非我从头开始实例化一个非常大的数组。

有没有更好的解决方案呢?会ArrayList,或列表或还有什么?

回答

3

这似乎是显而易见的,但因为你事先不知道你有多少个元素必须存储你应该使用List<Canvas>List<Label>等等,那么你可以使用的方法list.Add()list.Remove()

不要使用ArrayList,您希望强制输入数据并能够动态添加和删除项目 - 因此List<T>将符合法案要求。