C#教學(xué)課件:第4章 數(shù)組_第1頁
C#教學(xué)課件:第4章 數(shù)組_第2頁
C#教學(xué)課件:第4章 數(shù)組_第3頁
C#教學(xué)課件:第4章 數(shù)組_第4頁
C#教學(xué)課件:第4章 數(shù)組_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、第4章 數(shù)組1內(nèi)容簡介 試想一下,如果用戶要錄入本次考試班級(jí)全班前20名同學(xué)的成績并計(jì)算平均分?jǐn)?shù),那么就需要聲明20個(gè)變量來存儲(chǔ)成績,這樣豈不是很麻煩,有沒有更好的辦法呢? 當(dāng)然有:數(shù)組。 數(shù)組是一個(gè)有序的數(shù)據(jù)集合,它能夠更好的存儲(chǔ)數(shù)據(jù)。本章將詳細(xì)介紹數(shù)組的知識(shí),包括一維數(shù)組、多維數(shù)組、靜態(tài)數(shù)組和動(dòng)態(tài)數(shù)組的概念、聲明以及用法等等。最后會(huì)以兩個(gè)綜合案例結(jié)束本章。2本章學(xué)習(xí)要點(diǎn) 了解數(shù)組的概念以及數(shù)組的分類 掌握如何聲明和初始化數(shù)組 掌握訪問數(shù)組元素和遍歷數(shù)組的方法 熟悉靜態(tài)數(shù)組常用的屬性和方法 熟練利用Sort()方法和Reverse()方法對數(shù)組進(jìn)行排序和反轉(zhuǎn)操作 掌握靜態(tài)數(shù)組中復(fù)制數(shù)組常用的

2、4種方法 熟悉動(dòng)態(tài)數(shù)組常用的屬性和方法 掌握如何在動(dòng)態(tài)數(shù)組中添加、刪除和查找元素34.1 數(shù)組概述 數(shù)組是一種常見的數(shù)據(jù)類型,且屬于引用類型。在C#中,把一組具有同一名字、不同下標(biāo)的下標(biāo)變量稱為數(shù)組。它是一個(gè)有序的數(shù)據(jù)集合,包含若干個(gè)相同類型的變量,這些變量都被稱為數(shù)組元素。使用數(shù)組可以在很大程度上簡化應(yīng)用程序的代碼。 數(shù)組具有以下的特性:數(shù)組可以是一維數(shù)組、二維數(shù)組或多維數(shù)組數(shù)值數(shù)組元素的默認(rèn)值為0,而引用元素的默認(rèn)值為null交錯(cuò)數(shù)組是數(shù)組的數(shù)組,因此,它的元素是引用類型,初始化為 null。交錯(cuò)數(shù)組元素的維度和大小可以不同數(shù)組的索引從0開始,如果數(shù)組有n個(gè)元素,那么數(shù)組的索引是從0到n-

3、1數(shù)組元素可以是任何類型,包括數(shù)組類型44.2 一維數(shù)組.1 一維數(shù)組是指維度數(shù)為1的數(shù)組,又稱作簡單數(shù)組,它是數(shù)組最簡單的形式,也是最常用的數(shù)組。這一節(jié)我們就學(xué)習(xí)如何聲明和初始化一維數(shù)組。聲明數(shù)組初始化數(shù)組54.2.1 聲明數(shù)組 要使用一個(gè)數(shù)組就必須先聲明這個(gè)數(shù)組。聲明一維數(shù)組的語法:type arrayName; 其中type表示數(shù)組元素的類型,如int、double、string或object等;arrayName表示數(shù)組的名稱。 例:聲明兩個(gè)數(shù)組。int intArray;string stringArray; 聲明數(shù)組后并沒有實(shí)際創(chuàng)建它們,還不能使用(如顯示、運(yùn)算等)

4、。6在 C# 中數(shù)組是對象,必須進(jìn)行實(shí)例化,以創(chuàng)建數(shù)組:一維數(shù)組: int numbers = new int50; string stringArray= new string7;多維數(shù)組: string, names = new string5,4; 這樣,數(shù)組成員將自動(dòng)具有該數(shù)組類型的默認(rèn)初始值,是可用的了。double ,float ,int ,long 等默認(rèn)初值:0 。bool :false ,char :0,string :null74.2.2 初始化數(shù)組數(shù)組在使用前必須初始化或?qū)嵗?,為?shù)組中的每一個(gè)元素進(jìn)行賦值。聲明數(shù)組的同時(shí)也可以初始化數(shù)組。在C#中提供了3種初始化數(shù)組的方

5、法:type arrayName= new typenumvalue1,value2,value3,.valueN;type arrayName= new type value1,value2,value3,.valueN;type arrayName= value1,value2,value3,.valueN;其中type表示數(shù)組的類型;arrayName表示數(shù)組的名稱,num表示聲明數(shù)組的長度;value1、value2和value3等表示數(shù)組初始值列表。int intArray3 = new int5 11, 22, 33, 44, 55 ;int intArray2 = new int

6、 31, 64, 97 ; int intArray1 = 95, 83, 68, 88 ;第一種方法,初始值列表數(shù)量必須等于聲明的數(shù)組長度。第二或第三種方法,數(shù)組長度由初始值列表的數(shù)量決定。8數(shù)組從零開始建立索引,即數(shù)組索引從零開始。聲明數(shù)組時(shí),方括號(hào) 必須跟在類型后面,而不是標(biāo)識(shí)符后面。在 C# 中,將方括號(hào)放在標(biāo)識(shí)符后是不合法的語法。數(shù)組的大小不是其類型的一部分(而在 C 語言中它卻是數(shù)組類型的一部分)??梢韵嚷暶饕粋€(gè)數(shù)組,再指定數(shù)組長度。例:int numbers; / declare numbers as an int array of any size numbers = new

7、int10; / numbers is a 10-element array numbers = new int20; / now its a 20-element array 9使用數(shù)組元素:int num = 12,34,67, 89;num0= 33;int i = 2 ;numi = num0 + 100 ;104.3 二維數(shù)組.1 在某些場合一維數(shù)組已經(jīng)不能滿足應(yīng)用的需要了。如利用數(shù)組存儲(chǔ)若干個(gè)學(xué)生不同科目的成績,這時(shí)候就需要使用二維數(shù)組。 二維數(shù)組是指維度數(shù)為2的數(shù)組,也叫矩形數(shù)組。在C#中,它也是比較常用的數(shù)組。上一節(jié)我們學(xué)習(xí)了如何聲明和初始化一維數(shù)組,本節(jié)我們就

8、來介紹如何聲明和初始化二維數(shù)組。聲明數(shù)組初始化數(shù)組11100176936810028897651109938672學(xué)號(hào) 數(shù)學(xué) 外語 物理甲乙丙4.3.1 聲明二維數(shù)組 聲明二維數(shù)組的語法如下:type, arrayName; 其中type表示數(shù)組元素的類型,如int、double、string或object等;中括號(hào)()中間使用一個(gè)逗號(hào)隔開,表示該數(shù)組為一個(gè)二維數(shù)組;arrayName表示數(shù)組的名稱。 例如聲明兩個(gè)二維數(shù)組:一個(gè)int類型的二維數(shù)組numbers,不需要指明長度;另一個(gè)為string類型的二維數(shù)組stuscore,指定其長度為3。編寫的代碼如下:double , numbers

9、;int, stuscore = new int3,4; /見下表12100176936810028897651109938672學(xué)號(hào) 數(shù)學(xué) 外語 物理甲乙丙4.3.2 初始化二維數(shù)組在C#中提供了3種初始化二維數(shù)組的方法,語法如下:type, arrayName = new typeva1length,va2length value1,value2,value3,value4,value5,value6 ;type, arrayName = new type, value1,value2,value3,value4,value5,value6;type, arrayName = value1

10、,value2,value3,value4,value5,value6;13甲乙丙100176936810028897652136938672學(xué)號(hào) 數(shù)學(xué) 外語 物理va1lengthva2length14static void Main(string args) int, numbers = new int2, 3 23, 44, 53 , 1, 100, 4 ; /2行3列 double, stuscore = new double, 98, 100, 65.5 , 75.8, 99.5, 90 , 55, 100, 64 , 55.5, 88.5, 99.5 ;/4行3列 string,

11、bookname = 家, 春, 秋 , 霧, 雨, 電 , 背影, 父親, 童年 ; /3行3列 for (int i = 0; i 3; i+) for (int j = 0; j 3; j+) Console.Write( booknamei, j ); Console.WriteLine(); Console.Read();4.4 多維數(shù)組 多維數(shù)組是指維度數(shù)大于2的數(shù)組,如三維、四維數(shù)組等。聲明多維數(shù)組的語法和二維數(shù)組相似。type, arrayName;int, , numsllist = new int2, 5, 2 2, 3 , 4, 50 , 1, 10 , 44, 53 ,

12、 11, 22 , 2, 3 , 4, 50 , 1, 10 , 44, 53 , 11, 22 ; 在C#中也提供了3種初始化多維數(shù)組的方法,和二維數(shù)組一樣。1516天安門,長城,鳥巢烤鴨,炸醬面,驢打滾外灘,東方明珠,豫園小籠包,千張,小餛飩武侯祠,草堂,春熙路擔(dān)擔(dān)面,鐘水餃,麻婆豆腐珠江,白云山,小蠻腰蝦餃,云吞面,腸粉景點(diǎn) 美食 如何聲明(類型、維度、長度)?17 static void Main ( string args) string, , cities = new string4, 2, 3 天安門,長城,鳥巢,烤鴨,炸醬面,驢打滾, 外灘,東方明珠,豫園,小籠包,千張,小餛飩

13、, 武侯祠,草堂,春熙路,擔(dān)擔(dān)面,鐘水餃,麻婆豆腐, 珠江,白云山,小蠻腰,蝦餃,云吞面,腸粉 ; foreach (string s in cities) Console.WriteLine(s); Console.ReadLine(); 交錯(cuò)數(shù)組 是不規(guī)則的二維數(shù)組。行數(shù)固定,但每行的長度不固定。 又稱為鋸齒數(shù)組、數(shù)組的數(shù)組和不規(guī)則數(shù)組。 定義的語法:type arrayName;18物聯(lián)1物聯(lián)2計(jì)算機(jī)1計(jì)算機(jī)2計(jì)算機(jī)3計(jì)算機(jī)4電信1電信2電信3例:各系的班級(jí)列表物聯(lián)系計(jì)算機(jī)系電信系交錯(cuò)數(shù)組的初始化: 設(shè)置第一個(gè)括號(hào)中該數(shù)組包含的行數(shù),但第二個(gè)括號(hào)為空,因?yàn)槊恳恍邪煌瑐€(gè)數(shù)的元素。sta

14、tic void Main(string args) string arr = new string3 new string 計(jì)算機(jī)1班,計(jì)算機(jī)2班,計(jì)算機(jī)3班, new string 2 電信1班,電信2班, new string 英語1班,英語2班,英語3班 ; for (int i = 0; i arr.Length;i+ ) for (int j = 0; j arri.Length; j+) Console.Write(arrij + _); Console.WriteLine(); Console.Read(); 數(shù)組操作.1訪問數(shù)組元素使用fo

15、reach語句遍歷數(shù)組對數(shù)組排序204.5.1 訪問數(shù)組元素 C#中訪問數(shù)組元素,通過它的下標(biāo)即可訪問,通常我們把下標(biāo)叫做索引,它的索引從0開始。 以二維數(shù)組為例,在應(yīng)用程序中聲明并初始化二維數(shù)組bookname,然后輸出二維數(shù)組中行數(shù)索引為1,列數(shù)索引為2的元素內(nèi)容。代碼如下:string, bookname = 巴金三部曲:, 家, 春, 秋 , 老舍三部曲:, 駱駝祥子, 四世同堂, 茶館 ;Console.WriteLine(bookname1, 2);Console.ReadLine(); 上述代碼中直接使用索引bookname1,2獲得第2行第3列元素的值。運(yùn)行上述代碼,控制臺(tái)輸出

16、的結(jié)果為: 四世同堂。214.5.2 使用foreach語句遍歷數(shù)組遍歷數(shù)組是指依次訪問數(shù)組中的每一個(gè)元素,C#中遍歷數(shù)組有兩種方式:1、使用索引(或下標(biāo))遍歷,如for、while、dowhile等語句;2、不使用索引遍歷,使用foreach等。 以一維數(shù)組為例,在應(yīng)用程序中聲明并初始化數(shù)組authorname,然后使用foreach語句遍歷數(shù)組中元素的值,編寫的代碼如下:string authorname = new string5 冰心, 金庸, 巴金, 老舍, 朱自清 ;Console.WriteLine(循環(huán)輸出的結(jié)果如下:);foreach (string item in auth

17、orname) Console.WriteLine(item);Console.ReadLine();224.5.3 對數(shù)組進(jìn)行排序 生活中遇到的情況:剛?cè)胄掳嗉?jí)的體育課上,老師總是會(huì)讓大家站在一排,然后比較同學(xué)的個(gè)子交換位置,個(gè)子低的同學(xué)站在最前面。 程序?qū)崿F(xiàn):將每個(gè)同學(xué)的身高存儲(chǔ)到數(shù)組中,用程序?qū)崿F(xiàn)數(shù)組排序。 冒泡排序(Bubble Sort:從索引為0的元素開始,比較相鄰的兩個(gè)數(shù)組元素,每次比較完畢后最大的一個(gè)元素跑到本輪的末尾,實(shí)現(xiàn)從小到大的排序。大的元素會(huì)經(jīng)由交換慢慢“浮”到數(shù)列的頂端。23 假設(shè)存在數(shù)組:65,81,35,100,87,67,55。 (1)第一輪首先比較兩兩相鄰的元

18、素,如果左邊元素大于右邊元素,則交換位置。65和81比較的結(jié)果就是:65在前,81在后;然后81和35比較的結(jié)果就是:35在前,81在后。以此類推,第一輪比較后的結(jié)果是:65,35,81,87,67,55,100。 (2)經(jīng)過第一輪的比較,最大的元素跑到了最后一個(gè)。所以第二輪比較,最后一個(gè)元素就不需要進(jìn)行比較了。 (3)第二輪還是從索引0和1開始比較,比較方法和前兩步相同。第二輪比較后的結(jié)果是:35,65,81,67,55,87,100。 (4)第三輪和第四輪等以此類推。排序后的結(jié)果就是:35,55,65,67,81,87,100。 例:老師要錄入總分排名前10名同學(xué)的數(shù)學(xué)成績,并且進(jìn)行排序。

19、編寫的代碼如下:24int score = new int10;/聲明數(shù)組,存放10名同學(xué)的成績int i, j, temp;/變量i,j用于循環(huán)數(shù)據(jù),temp變量交換for (i = 0; i score.Length; i+)/循環(huán)錄入10名同學(xué)的數(shù)學(xué)成績 Console.Write(請輸入第0名學(xué)生的數(shù)學(xué)成績:, i + 1); scorei = int.Parse(Console.ReadLine();for (i = 0; i score.Length - 1; i+) /開始排序,需交換score.Length-1次 for (j = 0; j scorej + 1) temp =

20、 scorej; scorej = scorej + 1; scorej + 1 = temp; Console.WriteLine(對成績進(jìn)行排序,從小到大依次為:);foreach (int stu in score)/重新輸出排序后的結(jié)果 Console.Write(stu + t);Console.ReadLine();2526上面程序是按升序排列。如何按降序排列?.44.6 靜態(tài)數(shù)組.1 .NET框架提供了兩種數(shù)組:靜態(tài)數(shù)組和動(dòng)態(tài)數(shù)組。靜態(tài)數(shù)組是指從建立數(shù)組開始到運(yùn)行結(jié)束時(shí),數(shù)組的維度數(shù)和大小是不能更改的。靜態(tài)數(shù)組由System.Array類實(shí)現(xiàn),此前

21、所介紹的數(shù)組都屬于靜態(tài)數(shù)組。屬性方法獲取數(shù)組長度和數(shù)組元素的值數(shù)組排序4.6.5復(fù)制數(shù)組274.6.1 屬性System.Array類包含了7個(gè)屬性,常用的是:屬性描述Length數(shù)組的長度,即數(shù)組所有維度中元素的總數(shù)。為32位整數(shù)LongLength數(shù)組的長度,即數(shù)組所有維度中元素的總數(shù)。為64位整數(shù)Rank數(shù)組的秩,即數(shù)組的維度數(shù) 我們經(jīng)常使用Length獲得數(shù)組的長度,如果數(shù)組的長度大于32位,則只能通過LongLength屬性獲得數(shù)組長度。 如果是二維數(shù)組或多維數(shù)組,可以使用Rank屬性獲得數(shù)組的維度數(shù)。 284.6.2 方法 System.Array包含多個(gè)方法:方法描述GetVal

22、ue()獲取指定元素的值SetValue()設(shè)置指定元素的值。 Clear()清除數(shù)組中的所有元素。IndexOf()獲取匹配的第一個(gè)元素的索引LastIndexOf()獲取匹配的最后一個(gè)元素的索引Sort()對一維數(shù)組中的元素排序Reverse()反轉(zhuǎn)一維數(shù)組中元素的順序GetLength()獲取指定維度數(shù)組的元素?cái)?shù)量。該值為32位整數(shù)GetLongLength()獲取指定維度數(shù)組的元素?cái)?shù)量。該值為64位整數(shù)FindIndex()搜索指定元素,并獲取第一個(gè)匹配元素的索引FindLastIndex()搜索指定元素,并獲取最后一個(gè)匹配元素的索引Copy()將一個(gè)數(shù)組中的一部分元素復(fù)制到另一個(gè)數(shù)組

23、CopyTo()將一維數(shù)組中的所有元素復(fù)制到另外一個(gè)一維數(shù)組Clone()復(fù)制數(shù)組GetUpperBound()獲取數(shù)組中指定維度的上限29GetValue(intindex)返回一維數(shù)組第index個(gè)元素的值;GetValue(intidx1,intidx2)獲取2維數(shù)組的某個(gè)元素的值;GetValue(intidx1,intidx2,intidx3) 3維數(shù)組元素的值;SetValue(value,idx1)或 SetValue(value,idx1,idx2);GetLength(intdim)返回多維數(shù)組第dim維的元素的個(gè)數(shù);CopyTo(Arraydest,intstart)將調(diào)用

24、此方法的數(shù)組中元素復(fù)制到dest中,將dest中從start位置開始往后的內(nèi)容覆蓋;Array.Sort(數(shù)組名字): 對指定的數(shù)組中的元素排序(升序);Array.Reverse(數(shù)組名字): 將指定的數(shù)組中的元素順序反轉(zhuǎn);Array.Copy(Arry src,long idx1,Array dest,long idx2,long length)Array.Clear(數(shù)組名字, 起始位置, 長度)3031 static void Main(string args) string stringArr = new string good, nice, fine ; int, intArr =

25、 2, 3, 4,2,2,2 ; stringArr.SetValue(perfect, 2); foreach (string s in stringArr) Console.WriteLine(s); intArr.SetValue(999, 0, 1); foreach (int i in intArr) Console.WriteLine(i); Console.Read(); 4.6.3 獲取數(shù)組長度和數(shù)組元素的值 例:聲明一個(gè)長度為20的一維數(shù)組stuid。stuid.Length獲得數(shù)組長度,SetValue()方法為數(shù)組元素賦值,然后使用GetValue()方法循環(huán)取出數(shù)組元素

26、的值,判斷元素的值是否為奇數(shù),如果是則輸出元素的值。static void Main(string args) int stuId = new int20; for (int i = 0; i stuId.Length ; i+) stuId.SetValue(i + 1, i); / 或 stuIdi= i+1; for (int i = 0; i stuId.Length;i+ ) int number = (int) stuId.GetValue(i); / object轉(zhuǎn)成int if (number % 2 = 1) Console.WriteLine(number); Consol

27、e.Read(); 3233作業(yè):對于一個(gè)已經(jīng)建立的數(shù)組,利用Rank、GetLength和GetUpperBound,逐行顯示出每個(gè)維度的元素個(gè)數(shù)、最大上標(biāo)值 。4.6.4 數(shù)組排序 static void Main(string args) string myHobby = new string4 爬山, 游泳, 足球 , 唱歌; Console.WriteLine(排序前的數(shù)組元素是:); foreach (string s in myHobby) Console.WriteLine(s); Array.Sort(myHobby); Console.WriteLine(排序后的元素是:)

28、; foreach (string s in myHobby) Console.WriteLine(s); Array.Reverse(myHobby); Console.WriteLine(倒序后的元素是:); foreach (string s in myHobby) Console.WriteLine(s); Console.Read(); Array類的Sort()方法實(shí)現(xiàn)數(shù)組排序的功能。 例:string類型的一維數(shù)組myHobby存儲(chǔ)個(gè)人愛好,循環(huán)輸出各個(gè)元素的值。然后使用Sort()方法對數(shù)組進(jìn)行排序(升序),再Reverse倒序。344.6.5 復(fù)制數(shù)組C#中復(fù)制數(shù)組常用4種方

29、法:for語句、Copy()、CopyTo()以及Clone()。1.for語句復(fù)制數(shù)組例:string類型的二維數(shù)組book和copybook,利用for語句循環(huán),使用SetValue方法將book數(shù)組中的元素全部復(fù)制到copybook數(shù)組中。static void Main(string args) string, book = new string2, 4 西游記,水滸傳,紅樓夢,三國演義, 荷馬史詩,神曲,哈姆雷特,浮士德 ; string, bookCopy = new stringbook.GetLength(0), book.GetLength(1); for (int i =

30、0; i = book.GetUpperBound(0); i+) for (int j = 0; j = book.GetUpperBound(1); j+) bookCopy.SetValue(booki, j, i, j); foreach (string s in bookCopy) Console.WriteLine(s); Console.Read();354.6.5 復(fù)制數(shù)組2.Copy()方法復(fù)制數(shù)組Copy()方法用來復(fù)制數(shù)組,將數(shù)組中的部分元素復(fù)制到另一個(gè)數(shù)組。 Array.Copy( Arry src, int idx1, Array dest, int idx2, in

31、t length)參數(shù)可以是5個(gè),也可以是3個(gè)(同時(shí)省略掉idx1和idx2,按0處理)。36idx1idx2srcdestlength static void Main(string args) string, book = new string2, 4 西游記,水滸傳,紅樓夢,三國演義, 荷馬史詩,神曲,哈姆雷特,浮士德 ; string, bookCopy = new stringbook.GetLength(0), book.GetLength(1); Array.Copy(book, bookCopy, book.Length); / 從0號(hào)索引全部復(fù)制 foreach (strin

32、g s in bookCopy) Console.WriteLine(s); Console.Read(); 374.6.5 復(fù)制數(shù)組 static void Main(string args) int arr = new int 160, 180, 165 ; int arrCopy = new int5; arr.CopyTo(arrCopy, 1); foreach (int item in arrCopy) Console.WriteLine(item + ); Console.Read(); 3.CopyTo()方法復(fù)制數(shù)組 CopyTo()方法是將一維數(shù)組中的所有元素全部復(fù)制到另外

33、一個(gè)數(shù)組中。此方法僅僅適用于一維數(shù)組。 CopyTo(Array dest,long start)將調(diào)用此方法的數(shù)組中的元素從0號(hào)索引開始全部復(fù)制到dest中,覆蓋dest中從start位置開始往后的內(nèi)容。38注意:數(shù)組索引從0開始4.6.5 復(fù)制數(shù)組 static void Main(string args) int arr = new int 160, 180, 165, 170, 155 ; int theCopy = (int) arr.Clone(); foreach (int item in theCopy) Console.WriteLine(item ); Console.Re

34、ad(); Clone()方法用來復(fù)制數(shù)組的值,可以是一維數(shù)組、二維數(shù)組、多維數(shù)組。Clone()方法返回的是一個(gè)對象,所以使用時(shí)要強(qiáng)制轉(zhuǎn)換成適當(dāng)?shù)念愋汀?4.Clone ()方法復(fù)制數(shù)組3.44.7 動(dòng)態(tài)數(shù)組.1 與靜態(tài)數(shù)組相反的就是動(dòng)態(tài)數(shù)組,又稱為可變數(shù)組。動(dòng)態(tài)數(shù)組是指在程序執(zhí)行過程中可以改變數(shù)組的大小,或者釋放數(shù)組所占用的空間。動(dòng)態(tài)數(shù)組由System.ArrayList類實(shí)現(xiàn),本節(jié)我們主要介紹動(dòng)態(tài)數(shù)組的相關(guān)知識(shí),如動(dòng)態(tài)數(shù)組的屬性、方法以及如何增加元素等內(nèi)容。屬性方法增加元素刪除元素404.7.1 屬性using System.Collections;聲明

35、動(dòng)態(tài)數(shù)組: ArrayList arrayListName = new ArrayList(); System.ArrayList類包含了6個(gè)屬性,常用的有:屬性描述Capacity數(shù)組的容量??梢垣@取或設(shè)置動(dòng)態(tài)數(shù)組能夠容納的最大數(shù)量,它的值可以動(dòng)態(tài)修改。Count數(shù)組元素的數(shù)量??梢垣@取動(dòng)態(tài)數(shù)組中實(shí)際元素的數(shù)量。IsFixedSize表示數(shù)組的大小是否固定IsReadOnly表示數(shù)組是否為只讀4142using System.Collections;/=static void Main(string args)ArrayList arr = new ArrayList();Console.W

36、riteLine(Capacity is 0, Count is 1,arr.Capacity,arr.Count);Console.WriteLine(IsFixedSize is 0, IsReadOnly is 1, arr.IsFixedSize, arr.IsReadOnly);Console.Read();4.7.2 方法System.ArrayList類型的常用方法如下:方法描述Add()添加元素到數(shù)組的末尾AddRange()將集合中的元素添加到數(shù)組的末尾BinarySearch()使用二分查找算法搜索已排序的數(shù)組中的指定元素Clear()清空數(shù)組中的所有元素Contains(

37、)判斷數(shù)組中是否存在指定的元素Insert()插入元素到數(shù)組的指定位置InsertRange()將集合中的某個(gè)元素插入到數(shù)組的指定位置Remove()從數(shù)組移除指定的元素RemoveRange()從數(shù)組中移除一定范圍的元素RemoveAt()從數(shù)組中移除指定位置的元素GetRange()獲取數(shù)組的一個(gè)子集SetRange()將集合中的元素復(fù)制到數(shù)組中一定范圍的元素上IndexOf()獲取指定元素在數(shù)組中的第一個(gè)索引位置,從數(shù)組的開頭處開始查找LastIndexOf()獲取指定元素在數(shù)組中的第一個(gè)索引位置,從數(shù)組的結(jié)尾處開始查找Sort()對數(shù)組或一部分?jǐn)?shù)組元素進(jìn)行排序Reverse()將數(shù)組或

38、其一部分中的元素進(jìn)行反轉(zhuǎn)CopyTo()將數(shù)組或其一部分中的元素復(fù)制到數(shù)組中ToArray()將數(shù)組的元素復(fù)制到新數(shù)組中434.7.3 增加、插入、排序、包含Add()和Insert()方法都可以向動(dòng)態(tài)數(shù)組中添加元素: Add()方法可以將新元素添加到數(shù)組末尾處。 arrayName.Add(元素值) Insert()方法可以向指定位置插入數(shù)組元素。arrayName.Insert(int idx,元素值 ) static void Main(string args) ArrayList arr = new ArrayList(); arr.Add(歐也妮葛朗臺(tái)); arr.Add(巴黎圣母院

39、); arr.Insert(0, 茶花女); arr.Insert(2, 基督山伯爵); arr.Sort(); foreach (string item in arr) Console.WriteLine(item); Console.WriteLine(數(shù)組中是否包含茶花女 + arr.Contains(茶花女); Console.WriteLine(數(shù)組中是否包含茶花 + arr.Contains(茶花); Console.ReadLine(); 4445隨著動(dòng)態(tài)數(shù)組中元素的增加,其Count增加,Capacity也自動(dòng)增加。 static void Main(string args)

40、ArrayList arr = new ArrayList(); Console.WriteLine(Capacity is 0, Count is 1,arr.Capacity,arr.Count); arr.Add(數(shù)據(jù)庫原理); Console.WriteLine(加入數(shù)據(jù)后:nCapacity is 0, Count is 1, arr.Capacity, arr.Count); Console.Read(); 46 static void Main(string args) ArrayList arr = new ArrayList(); ArrayList arr2 = new A

41、rrayList(); for (int i = 0; i 10; i+) arr.Add(i + 10); arr2.AddRange(arr); foreach (int k in arr2) Console.WriteLine(k); Console.Read(); AddRange方法把某個(gè)集合的元素值都添加到數(shù)組中來。4.7.4 刪除元素 可以使用Remove()、RemoveAt()和RemoveRange()方法刪除數(shù)組元素。(1)、 Remove() 從數(shù)組中移除第一個(gè)找到的元素值。 arrayName.Remove(要?jiǎng)h除的元素值); 要?jiǎng)h除的元素需要有正確的數(shù)據(jù)類型,否則刪

42、除不掉。47 static void Main(string args) ArrayList arr = new ArrayList(); arr.Add(12); arr.Add(34); arr.Add(12); arr.Add(34); arr.Remove(34); /刪除掉第一個(gè)34 arr.Remove(12);/本句無效果 foreach (int i in arr) Console.WriteLine(i); Console.ReadLine(); 4.7.4 刪除元素(2)、 RemoveAt() 從數(shù)組中移除指定位置的元素 arrayName.RemoveAt(int id

43、x); idx是要?jiǎng)h除的元素的索引號(hào)。 arr.RemoveAt(1);(3)、 RemoveRange() 從數(shù)組中移除指定范圍內(nèi)的元素。 arrayName.RemoveRange( int start, int count);48 static void Main(string args) ArrayList arr = new ArrayList(); for (int i = 0; i = 6; i+) arr.Add(i * 10); arr.RemoveRange(3, 2); foreach (int i in arr) Console.WriteLine(i); Console.ReadLine(); 4.8 求3*4矩陣的所有外側(cè)元素的和 本節(jié)我們就綜合本章所講解的內(nèi)容,實(shí)現(xiàn)求3*4矩陣的所有外側(cè)元素和的功能。 例:求3*4矩陣的外側(cè)元素之和。在應(yīng)用程序中聲明并初始化一個(gè)int類型的二維數(shù)組number,循環(huán)輸出二維數(shù)組中所有元素的值,if語句判斷是是否為3*4矩形的外側(cè)值。494.8 求3*4矩陣的所有外側(cè)元素的和public static void Main(string args) int, n

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論