亚洲区国产区激情区无码区,国产成人mv视频在线观看,国产A毛片AAAAAA,亚洲精品国产首次亮相在线

C# ArrayList(動(dòng)態(tài)數(shù)組)

在C#中,ArrayList 是一個(gè)非泛型的對(duì)象集合,其大小會(huì)動(dòng)態(tài)增加。它與Array相同,只是它的大小是動(dòng)態(tài)增加的。

一個(gè)ArrayList可以用來(lái)添加未知數(shù)據(jù),可能你并不知道的類(lèi)型和數(shù)據(jù)的大小。

創(chuàng)建 ArrayList

System.Collections 命名空間中包含的 ArrayList 類(lèi)。ArrayList使用 new 關(guān)鍵字創(chuàng)建對(duì)象。

using System.Collections;

ArrayList arlist = new ArrayList(); 
// 或者
var arlist = new ArrayList(); // 推薦

在ArrayList中添加元素

使用Add()方法或?qū)ο蟪跏贾翟O(shè)定項(xiàng)語(yǔ)法在 ArrayList 中添加元素。

ArrayList 可以包含多個(gè) null 和 重復(fù)值。

// 使用ArrayList.Add()方法添加元素
var arlist1 = new ArrayList();
arlist1.Add(1);
arlist1.Add("Bill");
arlist1.Add(" ");
arlist1.Add(true);
arlist1.Add(4.5);
arlist1.Add(null);

// 使用對(duì)象初始化語(yǔ)法添加元素
var arlist2 = new ArrayList()
                {
                    2, "Steve", " ", true, 4.5, null
                };

使用 AddRange (ICollection c)方法在 ArrayList 中添加一個(gè)完整的 Array、 HashTable、 SortedList、 ArrayList、 BitArray、 Queue 和 Stack。

var arlist1 = new ArrayList();

var arlist2 = new ArrayList()
                    {
                        1, "Bill", " ", true, 4.5, null
                    };

int[] arr = { 100, 200, 300, 400 };

Queue myQ = new Queue();
myQ.Enqueue("Hello");
myQ.Enqueue("World!");

arlist1.AddRange(arlist2); //在arraylist中添加arraylist 
arlist1.AddRange(arr); //在arraylist中添加數(shù)組 
arlist1.AddRange(myQ); //在arraylist中添加隊(duì)列

訪(fǎng)問(wèn)ArrayList

本ArrayList類(lèi)實(shí)現(xiàn)了IList接口。因此,可以像數(shù)組一樣使用索引器訪(fǎng)問(wèn)元素。索引從零開(kāi)始,并為每個(gè)后續(xù)元素增加 1。

需要顯式轉(zhuǎn)換為適當(dāng)?shù)念?lèi)型,或使用 var 變量。

var arlist = new ArrayList()
                {
                    1,
                    "Bill",
                    300,
                    4.5f
                };

//使用索引器訪(fǎng)問(wèn)單個(gè)項(xiàng)目
int firstElement = (int) arlist[0]; //返回1
string secondElement = (string) arlist[1]; //返回“賬單”"Bill"
//int secondElement = (int) arlist[1]; //錯(cuò)誤:無(wú)法將字符串覆蓋為int

//使用var關(guān)鍵字而不進(jìn)行顯式轉(zhuǎn)換
var firstElement = arlist[0]; //返回1
var secondElement = arlist[1]; //返回“賬單”"Bill"
//var fifthElement = arlist[5]; //錯(cuò)誤:索引超出范圍

//更新元素
arlist[0] = "Steve"; 
arlist[1] = 100;
//arlist[5] = 500; //錯(cuò)誤:索引超出范圍

遍歷ArrayList

ArrayList實(shí)現(xiàn)實(shí)現(xiàn)了ICollection接口,該接口支持集合類(lèi)型的迭代。因此,使用foreach和for循環(huán)迭代ArrayList。ArrayList 的 Count 屬性返回 ArrayList 中的元素總數(shù)。

ArrayList arlist = new ArrayList()
                        {
                            1,
                            "Bill",
                            300,
                            4.5F
                        };

foreach (var item in arlist)
    Console.Write(item + ", "); //輸出:1,Bill,300,4.5, 
            
for(int i = 0 ; i < arlist.Count; i++)
    Console.Write(arlist[i] + ", "); //輸出:1,Bill,300,4.5,

在ArrayList中插入元素

使用Insert()方法將指定索引處的元素插入到 ArrayList。

語(yǔ)法:

void Insert(int index, Object value)
ArrayList arlist = new ArrayList()
                {
                    1,
                    "Bill",
                    300,
                    4.5f
                };

arlist.Insert(1, "Second Item");

foreach (var val in arlist)
    Console.WriteLine(val);

使用InsertRange()方法將集合插入ArrayList指定索引中的。

語(yǔ)法: 

void InsertRange(int index, ICollection c)
ArrayList arlist1 = new ArrayList()
                {
                    100, 200, 600
                };

ArrayList arlist2 = new ArrayList()
                {
                    300, 400, 500
                };
arlist1.InsertRange(2, arlist2);

foreach(var item in arlist1)
    Console.Write(item + ", "); //輸出:100、200、300、400、500、600,

從ArrayList中刪除元素

使用 Remove(),RemoveAt()或RemoveRange方法從 ArrayList 中移除元素。

ArrayList arList = new ArrayList()
                {
                    1,
                    null,
                    "Bill",
                    300,
                    " ",
                    4.5f,
                    300,
                };

arList.Remove(null); //刪除首次出現(xiàn)的null
arList.RemoveAt(4); //刪除索引4處的元素
arList.RemoveRange(0, 2);//從第一個(gè)項(xiàng)目(索引為0)刪除兩個(gè)元素

檢查ArrayList中的元素

使用Contains()方法確定指定的元素是否存在于中ArrayList。如果存在則返回true,否則返回false。

ArrayList arList = new ArrayList()
                {
                    1,
                    "Bill",
                    300,
                    4.5f,
                    300
                };

Console.WriteLine(arList.Contains(300)); // true
Console.WriteLine(arList.Contains("Bill")); // true
Console.WriteLine(arList.Contains(10)); // false
Console.WriteLine(arList.Contains("Steve")); // false
ArrayList由于性能問(wèn)題, 不建議使用該類(lèi)。而是,用于List<object>存儲(chǔ)異構(gòu)對(duì)象。要存儲(chǔ)相同數(shù)據(jù)類(lèi)型的數(shù)據(jù),請(qǐng)使用泛型 List<T>。

ArrayList類(lèi)

下圖說(shuō)明了ArrayList該類(lèi)。

C#ArrayList

ArrayList屬性

屬性
描述
Capacity

獲取或設(shè)置ArrayList可以包含的元素?cái)?shù)。

Count

獲取ArrayList中實(shí)際包含的元素?cái)?shù)。

IsFixedSize

獲取一個(gè)值,該值指示 ArrayList 是否具有固定大小。

IsReadOnly

獲取一個(gè)值,該值指示ArrayList是否為只讀。

Item

獲取或設(shè)置指定索引處的元素。

ArrayList方法

方法描述
Add()/AddRange()

Add ()方法在 ArrayList 的末尾添加單個(gè)元素。

AddRange ()方法將指定集合中的所有元素添加到 ArrayList 中。

Insert()/InsertRange()

Insert ()方法在 ArrayList 中的指定索引處插入單個(gè)元素。

InsertRange ()方法從 ArrayList 中的指定索引開(kāi)始插入指定集合的所有元素。

Remove()/RemoveRange()

Remove ()方法從 ArrayList 中刪除指定的元素。

RemoveRange ()方法從 ArrayList 中刪除指定范圍的元素。

RemoveAt()

從 ArrayList 中移除指定索引處的元素。

Sort()

對(duì) ArrayList 的所有元素排序。

Reverse()

反轉(zhuǎn)整個(gè) ArrayList 中元素的順序。

Contains

檢查指定的元素是否存在于 ArrayList 中。如果存在則返回 true,否則返回 false。

Clear

移除 ArrayList 中的所有元素。

CopyTo

將所有元素或元素范圍復(fù)制到可編譯數(shù)組。

GetRange

從 ArrayList 返回指定索引中指定的元素?cái)?shù)。

IndexOf

搜索指定的元素,如果找到,則返回從零開(kāi)始的索引。如果找不到元素,則返回-1。

ToArray

從ArrayList返回 數(shù)組。