[爆卦]C# ArrayResize是什麼?優點缺點精華區懶人包

為什麼這篇C# ArrayResize鄉民發文收入到精華區:因為在C# ArrayResize這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者stu87616 (以光為名)看板C_Sharp標題[問題] 多維陣列的Resize用法?時間T...


想設定一個二維陣列,但一開始還無法知道要有多大的大小,

上網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

你可能也想看看

搜尋相關網站