版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
-1-掌握C#中數(shù)組的定義掌握Array類的使用了解集合的概念掌握類庫中集合類的使用目標(biāo)-2-數(shù)組-1數(shù)組是具有相同數(shù)據(jù)類型的項(xiàng)的有序集合數(shù)據(jù)類型[]數(shù)組
名;int[]a; //聲明一個(gè)整型數(shù)組a數(shù)組的聲明:例如:數(shù)組的初始化(分配內(nèi)存空間):int[]myArray;//第一種初始化方式myArray=newint[4];//第二種初始化方式int[]myArray=newint[4];//第三種初始化方式int[]myArray=newint[4]{4,7,11,2};//第四種初始化方式int[]myArray=newint[]{4,7,11,2};//第五種初始化方式int[]myArray={4,7,11,2};-3-數(shù)組-2數(shù)組元素的訪問數(shù)組名[索引值]索引值只能為整數(shù),且從0開始,最大值為數(shù)組長度減1
classArrayDemo{ staticvoidMain(string[]args){ int[]myArray=newint[]{4,7,11,2}; intv1=myArray[0];//讀取第一個(gè)數(shù)組元素并賦值給v1 intv2=myArray[1];//讀取第二個(gè)數(shù)組元素并賦值給v2 myArray[3]=44;//為指定元素賦值;
//通過for循環(huán)打印數(shù)組元素
for(inti=0;i<myArray.Length;i++){ Console.WriteLine(myArray[i]); } }}示例:-4-數(shù)組-3任務(wù)描述:定義一個(gè)整型數(shù)組,接收10個(gè)數(shù),統(tǒng)計(jì)偶數(shù)和奇數(shù)的個(gè)數(shù)。classArrayTest{ staticvoidMain(string[]args){ int[]ary=newint[10];//定義一個(gè)大小為10的數(shù)組
inteven=0;//偶數(shù)個(gè)數(shù)
intodd=0;//奇數(shù)個(gè)數(shù)
//使用異常處理用戶輸入非數(shù)字時(shí)的錯(cuò)誤提示
try{ //使用for循環(huán)遍歷數(shù)組
for(inti=0;i<ary.Length;i++){ intn=i+1; Console.Write("請輸入第"+n+"個(gè)數(shù)字:"); //獲取用戶輸入的數(shù)字,并進(jìn)行類型轉(zhuǎn)化
ary[i]=Convert.ToInt32(Console.ReadLine()); } for(inti=0;i<ary.Length;i++){ //如果被2整除則為偶數(shù)
if((ary[i]%2)==0){ even++; }else{ odd++; } } Console.WriteLine("偶數(shù)的個(gè)數(shù)為:"+even); Console.WriteLine("奇數(shù)的格式為:"+odd); }catch{ Console.WriteLine("格式錯(cuò)誤!"); } }}使用ReadLine方法獲取的用戶輸入字符,默認(rèn)為字符串形式,需要顯示的轉(zhuǎn)換為int類型,才能進(jìn)行奇偶數(shù)的運(yùn)算。-5-Array類-1Array類是公共語言運(yùn)行庫中所有數(shù)組的基類,提供了創(chuàng)建、操作、搜索和排序數(shù)組的方法。Array類中常用屬性:屬性描述Length返回?cái)?shù)組元素個(gè)數(shù),如果需要返回一維中元素個(gè)數(shù)可使用GetLength()方法LongLength若數(shù)組包含的元素個(gè)數(shù)超過了32位int值的取值范圍,則使用longlength來獲取元素個(gè)數(shù)Rank獲取數(shù)組的維數(shù)-6-Array類-2Array類用于數(shù)組的方法:方法名描述ConvertAll靜態(tài)方法,將一種類型的數(shù)組轉(zhuǎn)換為另一種類型的數(shù)組Copy靜態(tài)方法,將一個(gè)Array的一部分元素復(fù)制到另一個(gè)Array中,并根據(jù)需要執(zhí)行類型強(qiáng)制轉(zhuǎn)換和裝箱CopyTo將當(dāng)前一維Array的所有元素復(fù)制到指定的一維Array中CreateInstance靜態(tài)方法,初始化Array類的新實(shí)例Exists靜態(tài)方法,確定指定數(shù)組包含的元素是否與指定謂詞定義的條件匹配Find靜態(tài)方法,搜索與指定謂詞定義的條件匹配的元素,返回Array中的第一個(gè)匹配項(xiàng)FindAll靜態(tài)方法,檢索與指定謂詞定義的條件匹配的所有元素GetLowerBound獲取Array中指定維度的下限GetUpperBound獲取Array的指定維度的上限IndexOf靜態(tài)方法,返回一維Array或部分Array中某個(gè)值第一個(gè)匹配項(xiàng)的索引LastIndexOf靜態(tài)方法,返回一維Array或部分Array中某個(gè)值的最后一個(gè)匹配項(xiàng)的索引Resize靜態(tài)方法,將數(shù)組的大小更改為指定的新大小Sort靜態(tài)方法,對一維Array對象中的元素進(jìn)行排序。-7-Array類-3創(chuàng)建Array數(shù)組:使用Array類的靜態(tài)方法CreateInstance()來創(chuàng)建數(shù)組。示例:classCreateInstanceDemo{ staticvoidMain(string[]args) { //創(chuàng)建一個(gè)整型數(shù)組,長度為6 Arraya=Array.CreateInstance(typeof(Int32),6); Console.WriteLine("數(shù)組的維數(shù):"+a.Rank); Console.WriteLine("數(shù)組的長度:"+a.Length); Console.WriteLine("數(shù)組中的初始值:"); foreach(inteina) { Console.Write(e+""); } Console.WriteLine(); //給數(shù)組的第1個(gè)元素賦值為10 a.SetValue(10,0); //給數(shù)組的第2個(gè)元素賦值為20 a.SetValue(20,1); Console.WriteLine("數(shù)組中的數(shù)據(jù):"); foreach(inteina) { Console.Write(e+""); } Console.WriteLine(); }}通過SetValue()方法指定數(shù)組元素的值-8-Array類-4數(shù)組的復(fù)制:值類型數(shù)組:復(fù)制所有的值引用類型數(shù)組:不復(fù)制對象元素,而只復(fù)制對象引用,引用還是引用同一個(gè)對象classArrayCopyDemo{ … staticvoidMain(string[]args){ //分別創(chuàng)建并實(shí)例化int類型的和Object類型的數(shù)組
int[]myIntArray=newint[5]{1,2,3,4,5}; Object[]myObjArray=newObject[5]{26,27,28,29,30}; //分別輸出兩個(gè)數(shù)組的初始值
… //復(fù)制int類型數(shù)組中的第1,2兩個(gè)值到Object類型數(shù)組中
Array.Copy(myIntArray,myObjArray,2); //分別輸出兩個(gè)數(shù)組的值
Console.WriteLine("\n復(fù)制int數(shù)組中的1,2兩個(gè)值到Object類型數(shù)組后兩個(gè)數(shù)組的值,"); Console.Write("int類型數(shù)組的值:"); PrintValues(myIntArray); Console.Write("Object類型數(shù)組的值:"); PrintValues(myObjArray); //復(fù)制Object類型數(shù)組中的最后兩個(gè)值到int類型數(shù)組中
Array.Copy(myObjArray,myObjArray.GetUpperBound(0)-1, myIntArray,myIntArray.GetUpperBound(0)-1,2); //分別輸出兩個(gè)數(shù)組的值
… }}通過Copy()方法復(fù)制數(shù)組-9-類庫中的集合-1.NET提供了對堆棧、隊(duì)列、列表和哈希表這些數(shù)據(jù)存儲(chǔ)和檢索的專用訪問類,這些類統(tǒng)稱為集合類。集合類特點(diǎn):集合類定義在System.Collections或System.Collections.Generic命名空間中。大多數(shù)集合類都派生自ICollection、IComparer、IEnumerable、IList、IDictionary和IDictionaryEnumerator接口以及它們的等效泛型接口。使用泛型集合類可以提供更高的類型安全性,在某些情況下還可以提供更好的性能,尤其是在存儲(chǔ)值類型時(shí),這些優(yōu)勢會(huì)體現(xiàn)得更明顯。
-10-類庫中的集合-2常用的集合類:ArrayList類Stack類Queue類Hashtable類SortedList類集合類具有一些公共的操作方法:方法說明Clear()從集合中移除所有元素Clone()創(chuàng)建集合的淺表副本Contains()確定某元素是否在集合中CopyTo()將集合或它的一部分復(fù)制到一維數(shù)組中ToString
()返回表示當(dāng)前集合的字符串-11-ArrayList類-1ArrayList類主要用于對數(shù)組中的元素進(jìn)行處理ArrayList類中常用的方法如下:方法說明Add()將對象添加到ArrayList的結(jié)尾處。Insert()將元素插入ArrayList的指定索引處。Remove()從ArrayList中移除特定對象的第一個(gè)匹配項(xiàng)。RemoveAt()移除ArrayList的指定索引處的元素。-12-ArrayList類-2示例:classArrayListDemo{ staticvoidMain(string[]args){ ArrayListarr=newArrayList();//實(shí)例化一個(gè)ArrayList對象
//使用Add方法向ArrayList中添加元素,將元素添加到其末尾
arr.Add("A"); arr.Add("B"); arr.Add("C"); foreach(intninnewint[3]{0,1,2}){ arr.Add(n); } //從ArrayList中移除特定對象的第一個(gè)匹配項(xiàng),注意是第一個(gè)
arr.Remove("A"); //移除ArrayList指定索引處的元素
arr.RemoveAt(3); //在指定處添加一個(gè)元素
arr.Insert(1,"D"); //遍歷ArrayList,并輸出所有元素
for(inti=0;i<arr.Count;i++){ Console.WriteLine(arr[i].ToString()); } }}通過Remove()移除元素通過Insert()插入元素-13-Stack類-1Stack類也叫做堆棧類,用來實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)中的“先進(jìn)后出”機(jī)制。Stack類中常用的方法:方法說明Push()將對象插入Stack的頂部。Pop()移除并返回位于Stack頂部的對象。Peek()返回位于Stack頂部的對象但不將其移除。ToArray()將Stack復(fù)制到新數(shù)組中。-14-Stack類-2示例:classStackDemo{ staticvoidMain(string[]args) { //實(shí)例化stack類的對象
Stackstack=newStack(); //入棧,使用push方法向stack對象中添加數(shù)據(jù)
for(inti=0;i<6;i++) { stack.Push(i); Console.WriteLine("{0}入棧",i); } //返回棧頂元素
Console.WriteLine("當(dāng)前棧頂元素為:{0}",stack.Peek().ToString()); //出棧
Console.WriteLine("移出棧頂元素:{0}",stack.Pop().ToString()); //返回棧頂元素
Console.WriteLine("當(dāng)前棧頂元素為:{0}",stack.Peek().ToString()); //遍歷棧
Console.Write("遍歷棧:"); foreach(intiinstack) { Console.Write(i+""); } Console.WriteLine(); //清空棧
while(stack.Count!=0) { ints=(int)stack.Pop(); Console.WriteLine("{0}出棧",s); } Console.WriteLine("棧中元素個(gè)數(shù)為:{0}",stack.Count); }}通過Push()方法進(jìn)行壓棧操作通過Peek()方法獲取棧頂元素通過Pop()方法進(jìn)行移棧操作-15-Queue類-1隊(duì)列的操作是“先進(jìn)先出”的模式。在C#中提供了Queue類來實(shí)現(xiàn)隊(duì)列的操作。Queue類中常用的方法及說明:方法說明Enqueue()將對象添加到Queue的結(jié)尾處。Dequeue()移除并返回位于Queue開始處的對象。Peek()返回位于Queue開始處的對象但不將其移除。ToArray()將Queue元素復(fù)制到新數(shù)組。-16-Queue類-2示例:classQueueDemo{ staticvoidMain(string[]args) { //實(shí)例化Queue類的對象
Queuequeue=newQueue(); //入隊(duì),使用Enqueue方法行Queue對象中添加元素
for(inti=1;i<6;i++) { queue.Enqueue(i); Console.WriteLine("{0}入隊(duì)",i); } //返回隊(duì)開始處的元素
Console.WriteLine("當(dāng)前隊(duì)開始處元素為:{0}",queue.Peek().ToString()); //遍歷隊(duì)列
Console.Write("遍歷隊(duì)列:"); foreach(intiinqueue) { Console.Write(i+""); } Console.WriteLine(); //清空隊(duì)
while(queue.Count!=0) { intq=(int)queue.Dequeue(); Console.WriteLine("{0}出隊(duì)",q); } Console.WriteLine("隊(duì)列中元素的個(gè)數(shù)為:{0}",queue.Count); }}通過Enqueue()方法實(shí)現(xiàn)入隊(duì)操作通過Peek()方法獲取最先進(jìn)入隊(duì)列中的元素-17-Hashtable類-1Hashtable類也叫做哈希表類,它是由一組鍵(Key)/值(Value)對集合組成。Hashtable類中常用的方法及說明:
方法說明Add()將帶有指定鍵和值的元素添加到Hashtable中Remove()從Hashtable中移除帶有指定鍵的元素ContainsKey()確定Hashtable是否包含特定鍵ContainsValue()確定Hashtable是否包含特定值-18-Hashtable類-2示例:classHashtableDemo{ staticvoidMain(string[]args){ //實(shí)例化Hashtable對象
HashtablestuHashTable=newHashtable(); //向Hashtable中添加元素
stuHashTable.Add("01","趙"); stuHashTable.Add("02","錢"); stuHashTable.Add("03","孫"); stuHashTable.Add("04","李"); //遍歷Hashtable foreach(DictionaryEntryelementinstuHashTable){ stringid=element.Key.ToString(); stringname=element.Value.ToString(); Console.WriteLine("學(xué)生的ID:{0}學(xué)生的姓氏:{1}",id,name); } //移除Hashtable中的元素
stuHashTable.Remove("03"); }}通過Add()方法實(shí)現(xiàn)元素插入操作通過Remove()方法實(shí)現(xiàn)元素移除操作-19-SortedList類-1SortedList類與Hashtable類相類似,每個(gè)數(shù)據(jù)也是由鍵/值對組成。它們之間的區(qū)別在于,SortedList類中的這些鍵/值對是按鍵來排序的,并且可以按照鍵和索引進(jìn)行訪問。下表中列出了SortedList類中常用的方法及說明。方法說明Add()將帶有指定鍵和值的元素添加到SortedList中Remove()從SortedList中移除帶有指定鍵的元素RemoveAt()移除SortedList指定索引處的元素ContainsKey()確定SortedList是否包含特定鍵ContainsValue()確定SortedList是否包含特定值-20-SortedList類-2示例:classSortedListDemo{ staticvoidMain(string[]args){ //實(shí)例化Sorted
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- B2C電商平臺(tái)用戶體驗(yàn)與服務(wù)優(yōu)化方案
- 中國歷史長篇小說的文化解讀
- 企業(yè)資源節(jié)約與環(huán)境保護(hù)管理辦法
- 市場營銷推廣活動(dòng)年度計(jì)劃
- 大學(xué)中文文化講座征文
- 2025年漳州貨運(yùn)上崗證考試題庫1387題
- 人力資源管理信息系統(tǒng)購買合同
- 移動(dòng)應(yīng)用軟件測試維護(hù)合同
- 2025年杭州道路運(yùn)輸從業(yè)人員資格考試內(nèi)容有哪些
- 室內(nèi)裝飾裝修工程合同
- 【學(xué)易金卷】2023-2024學(xué)年四年級(jí)數(shù)學(xué)上冊期末全真模擬提高卷(三)(A4版)(北師大版)
- GB 17353-2024摩托車和輕便摩托車防盜裝置
- 學(xué)校膳食管理委員會(huì)工作制度和職責(zé)
- 房租收條格式(3篇)
- 期末試卷(試題)2024-2025學(xué)年培智生活語文二年級(jí)上冊
- 2024秋期國家開放大學(xué)本科《中國當(dāng)代文學(xué)專題》一平臺(tái)在線形考(形考任務(wù)一至六)試題及答案
- 期末(試題)-2024-2025學(xué)年人教PEP版(2024)英語三年級(jí)上冊
- 2024伊利在線測評(píng)題
- 安徽省A10聯(lián)盟2025屆高二上數(shù)學(xué)期末考試試題含解析
- 紅色簡約中國英雄人物李大釗課件
- 小學(xué)師德考評(píng)細(xì)則
評(píng)論
0/150
提交評(píng)論