看板 C_Sharp 關於我們 聯絡資訊
想設定一個二維陣列,但一開始還無法知道要有多大的大小, 上網Google了一下,C#好像沒有類似C++的動態記憶體配置, 但是可以先設定小陣列,再用Resize這個指令改大小。 我的程式是這樣子的: int size = 1; //陣列想要的長度,先定1,之後有程式會確定需要多大 int[,] arr = new int[1, 1]; //主角陣列 ~一陣程式碼後,確定size的值~ Array.Resize(ref arr, [size,size]); ↑↑↑↑↑↑↑ 就是這裡! 照邏輯上是這樣寫,但編譯器跑不過。 如果是個一維陣列,直接塞size下去就過了,但二維顯然是有比較特殊的寫法?! 嘗試了幾個寫法都是錯誤,只好上來請益看看...... 懇請板上高手賜教 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.162.162.148
s3748679:似乎只能自己重新配置+複製元素.. 06/19 00:44
不太懂重新配置的意思@@? 因為一維陣列很輕易的過了,讓我覺得二維陣列照理來說也行的通?! 只是猜測...可以解說的詳細一點嗎QQ ※ 編輯: stu87616 來自: 1.162.162.148 (06/19 01:54)
ssccg:你那邊覺得照邏輯是這樣寫,C#沒有 [size,size] 這種語法吧 06/19 01:59
ssccg:Resize這方法不支援多維陣列,你只能建新的然後Copy 06/19 02:00
ssccg:另外C#的new就是動態配置,你要的就 new int[size,size]就好 06/19 02:03
原來是這樣, 我懂了, 感謝 還在用C語言的想法寫C#的東西,忘了直接new這種乾脆的用法呢 ※ 編輯: stu87616 來自: 1.162.162.148 (06/19 02:21)
bbcust:或是改用List之類 06/19 10:17
optimist9266:我沒研究過效能,不然用一維陣列的一維陣列應該也可? 06/19 11:41
horngsh:建議用Collection相關類別 06/19 22:51
s3748679:不建議Collection旗下的東西模擬多維陣列,如: 06/19 22:59
s3748679:List<List<int> > 這種的物件,並沒有如Array那樣有著取 06/19 23:01
s3748679:得Bound的能力。當然有另外包起來的話就另當別論了.. 06/19 23:01
s3748679:補充一下好了: List<List<int>>旗下的List<int>長度可能 06/19 23:05
s3748679:不同~ 06/19 23:05