C 中的動態陣列ArrayList

2022-02-05 05:03:53 字數 1453 閱讀 2088

arraylist就是實現了ilist, icollection, ienumerable, icloneable這幾個介面的動態陣列。即使.netframwork提供了一些更耐用更受歡迎的新的類,arraylist仍然十分有用。下面是一些在c#中使用arraylist的例項,一起看看其基本用法和一些高階用法。

新增元素

在使用arraylist的每個程式中基本都會用到其add方法。該方法追加乙個元素物件至arraylist的末端。在記憶體允許的情況下,你可以持續的向這個集合中新增元素,其元素以堆的形式進行儲存。見下示例。

arraylist類中元素的儲存為object型別,這意味著,arraylist物件原則上可以接受.net中的任何值,在儲存或檢索值型別時通常發生裝箱和拆箱。見下示例。

將乙個arraylist新增至另乙個arraylist

有多種不同的方法可以將乙個arraylist新增至另乙個arraylist,但是最優的是使用addrange方法。在.net framework內部,addrange使用array.copy或copyto方法,相比一些迴圈,能夠有更好的效能表現。如下示例。

arraylist的count屬性和clear方法

arraylist類提供了乙個虛屬性——count,當使用count屬性時,實際上並不是對arraylist物件中的元素個數予以計算,而是直接返回乙個快取字段值,這意味著使用該屬性獲取元素的數量速度非常之快。所以一般在程式中直接獲取其count屬性予以使用,而不必將該屬性的值取出來儲存在另乙個變數中。

arraylist類的clear方法用於移除其所有元素。在在.net framework內部,它呼叫了array.clear方法。有些時候,相比與清除原arraylist物件的所有元素,直接建立乙個新的arraylist物件,**看起來可能會更整潔一些。

arraylist的sort和reserve方法

可以利用sort方法對arraylist或它的一部分元素進行排序,預設是公升序排序。前面提到過arraylist中可以接受不同型別的值,但是如果要使用sort方法,必須保證進行排序的那部分元素是同一資料型別。換句話說,arraylist中有不同型別的元素時,仍然可以使用sort方法對其一部分元素進行排序,但這時必須指定該部分元素的範圍。

reserve方法的使用方法與sort類似,用於倒置arraylist或它的一部分元素的順序。對於arraylist中不同型別的元素的處理方式同sort方法。

動態陣列相關操作 0104 ArrayList

using system.collections 類名稱 arraylist 基本的例項化 arraylist 陣列名 newarraylist 例項化同時初始化 arraylist 陣列名 newarraylist 物件.add 成員 按資料刪 物件.remove 資料 按索引刪 物件.remov...

C 中動態陣列 陣列引數

一 c 中的動態陣列 寫程式的時候,我在想動態陣列怎麼寫,new int,方括號中可以寫常量嗎,真是鬱悶,一些基本的知識都不記得,還是多練練吧。int pia new int 10 陣列的維數可以是任意的複雜表示式。delete pia 動態分配陣列時,陣列元素為類型別呼叫預設建構函式,內建型別的不...

C 中的動態多維陣列

前言 c 的new操作符是該語言乙個非常好的語法特性,然而實際使用中卻發現new操作符有不少限制,為突出的一點便是用new操作符分配多維陣列空間時,不能讓陣列的每一維都動態可變。本文將對此提出乙個簡單直觀的解決方案,在乙個實際問題的簡化模型中加以說明,並以此釋清許多初學者對c 中new操作符與多維陣...