當(dāng)有一組數(shù)據(jù)需要存放,到底是使用T[]呢,還是選擇List<T>呢?
先來看數(shù)組。
所有的數(shù)組類型都隱式地從System.Array這個抽象類派生,而System.Array又派生自System.Object。也就是說數(shù)組是引用類型。通過如下方式創(chuàng)建數(shù)組:
int[] arrInt = new int[10];
以上,在托管堆上分配了可以容納10個未裝箱int對象所需要的內(nèi)存塊(這個內(nèi)存塊除了容納數(shù)組元素所占的內(nèi)存,還包括數(shù)組元素對象的類型對象指針、同步塊索引等額外成員),然后內(nèi)存塊地址被返回并保存到線程棧上的arrInt變量中。
而List<T>,實際上,在內(nèi)部也維護(hù)著一個數(shù)組,只不過這個數(shù)組的容量可以動態(tài)增加。就像這里說的。
總結(jié):如果數(shù)據(jù)的容量是動態(tài)變化的,需要操作,比如插入或刪除元素,就使用List<T>;如果數(shù)據(jù)的容量是固定的,可以考慮使用T[]。
新聞熱點
疑難解答