2011-04-03 65 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>將符合法案要求。