版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
-1-掌握C#中數組的定義掌握Array類的使用了解集合的概念掌握類庫中集合類的使用目標-2-數組-1數組是具有相同數據類型的項的有序集合數據類型[]數組
名;int[]a; //聲明一個整型數組a數組的聲明:例如:數組的初始化(分配內存空間):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-數組-2數組元素的訪問數組名[索引值]索引值只能為整數,且從0開始,最大值為數組長度減1
classArrayDemo{ staticvoidMain(string[]args){ int[]myArray=newint[]{4,7,11,2}; intv1=myArray[0];//讀取第一個數組元素并賦值給v1 intv2=myArray[1];//讀取第二個數組元素并賦值給v2 myArray[3]=44;//為指定元素賦值;
//通過for循環(huán)打印數組元素
for(inti=0;i<myArray.Length;i++){ Console.WriteLine(myArray[i]); } }}示例:-4-數組-3任務描述:定義一個整型數組,接收10個數,統計偶數和奇數的個數。classArrayTest{ staticvoidMain(string[]args){ int[]ary=newint[10];//定義一個大小為10的數組
inteven=0;//偶數個數
intodd=0;//奇數個數
//使用異常處理用戶輸入非數字時的錯誤提示
try{ //使用for循環(huán)遍歷數組
for(inti=0;i<ary.Length;i++){ intn=i+1; Console.Write("請輸入第"+n+"個數字:"); //獲取用戶輸入的數字,并進行類型轉化
ary[i]=Convert.ToInt32(Console.ReadLine()); } for(inti=0;i<ary.Length;i++){ //如果被2整除則為偶數
if((ary[i]%2)==0){ even++; }else{ odd++; } } Console.WriteLine("偶數的個數為:"+even); Console.WriteLine("奇數的格式為:"+odd); }catch{ Console.WriteLine("格式錯誤!"); } }}使用ReadLine方法獲取的用戶輸入字符,默認為字符串形式,需要顯示的轉換為int類型,才能進行奇偶數的運算。-5-Array類-1Array類是公共語言運行庫中所有數組的基類,提供了創(chuàng)建、操作、搜索和排序數組的方法。Array類中常用屬性:屬性描述Length返回數組元素個數,如果需要返回一維中元素個數可使用GetLength()方法LongLength若數組包含的元素個數超過了32位int值的取值范圍,則使用longlength來獲取元素個數Rank獲取數組的維數-6-Array類-2Array類用于數組的方法:方法名描述ConvertAll靜態(tài)方法,將一種類型的數組轉換為另一種類型的數組Copy靜態(tài)方法,將一個Array的一部分元素復制到另一個Array中,并根據需要執(zhí)行類型強制轉換和裝箱CopyTo將當前一維Array的所有元素復制到指定的一維Array中CreateInstance靜態(tài)方法,初始化Array類的新實例Exists靜態(tài)方法,確定指定數組包含的元素是否與指定謂詞定義的條件匹配Find靜態(tài)方法,搜索與指定謂詞定義的條件匹配的元素,返回Array中的第一個匹配項FindAll靜態(tài)方法,檢索與指定謂詞定義的條件匹配的所有元素GetLowerBound獲取Array中指定維度的下限GetUpperBound獲取Array的指定維度的上限IndexOf靜態(tài)方法,返回一維Array或部分Array中某個值第一個匹配項的索引LastIndexOf靜態(tài)方法,返回一維Array或部分Array中某個值的最后一個匹配項的索引Resize靜態(tài)方法,將數組的大小更改為指定的新大小Sort靜態(tài)方法,對一維Array對象中的元素進行排序。-7-Array類-3創(chuàng)建Array數組:使用Array類的靜態(tài)方法CreateInstance()來創(chuàng)建數組。示例:classCreateInstanceDemo{ staticvoidMain(string[]args) { //創(chuàng)建一個整型數組,長度為6 Arraya=Array.CreateInstance(typeof(Int32),6); Console.WriteLine("數組的維數:"+a.Rank); Console.WriteLine("數組的長度:"+a.Length); Console.WriteLine("數組中的初始值:"); foreach(inteina) { Console.Write(e+""); } Console.WriteLine(); //給數組的第1個元素賦值為10 a.SetValue(10,0); //給數組的第2個元素賦值為20 a.SetValue(20,1); Console.WriteLine("數組中的數據:"); foreach(inteina) { Console.Write(e+""); } Console.WriteLine(); }}通過SetValue()方法指定數組元素的值-8-Array類-4數組的復制:值類型數組:復制所有的值引用類型數組:不復制對象元素,而只復制對象引用,引用還是引用同一個對象classArrayCopyDemo{ … staticvoidMain(string[]args){ //分別創(chuàng)建并實例化int類型的和Object類型的數組
int[]myIntArray=newint[5]{1,2,3,4,5}; Object[]myObjArray=newObject[5]{26,27,28,29,30}; //分別輸出兩個數組的初始值
… //復制int類型數組中的第1,2兩個值到Object類型數組中
Array.Copy(myIntArray,myObjArray,2); //分別輸出兩個數組的值
Console.WriteLine("\n復制int數組中的1,2兩個值到Object類型數組后兩個數組的值,"); Console.Write("int類型數組的值:"); PrintValues(myIntArray); Console.Write("Object類型數組的值:"); PrintValues(myObjArray); //復制Object類型數組中的最后兩個值到int類型數組中
Array.Copy(myObjArray,myObjArray.GetUpperBound(0)-1, myIntArray,myIntArray.GetUpperBound(0)-1,2); //分別輸出兩個數組的值
… }}通過Copy()方法復制數組-9-類庫中的集合-1.NET提供了對堆棧、隊列、列表和哈希表這些數據存儲和檢索的專用訪問類,這些類統稱為集合類。集合類特點:集合類定義在System.Collections或System.Collections.Generic命名空間中。大多數集合類都派生自ICollection、IComparer、IEnumerable、IList、IDictionary和IDictionaryEnumerator接口以及它們的等效泛型接口。使用泛型集合類可以提供更高的類型安全性,在某些情況下還可以提供更好的性能,尤其是在存儲值類型時,這些優(yōu)勢會體現得更明顯。
-10-類庫中的集合-2常用的集合類:ArrayList類Stack類Queue類Hashtable類SortedList類集合類具有一些公共的操作方法:方法說明Clear()從集合中移除所有元素Clone()創(chuàng)建集合的淺表副本Contains()確定某元素是否在集合中CopyTo()將集合或它的一部分復制到一維數組中ToString
()返回表示當前集合的字符串-11-ArrayList類-1ArrayList類主要用于對數組中的元素進行處理ArrayList類中常用的方法如下:方法說明Add()將對象添加到ArrayList的結尾處。Insert()將元素插入ArrayList的指定索引處。Remove()從ArrayList中移除特定對象的第一個匹配項。RemoveAt()移除ArrayList的指定索引處的元素。-12-ArrayList類-2示例:classArrayListDemo{ staticvoidMain(string[]args){ ArrayListarr=newArrayList();//實例化一個ArrayList對象
//使用Add方法向ArrayList中添加元素,將元素添加到其末尾
arr.Add("A"); arr.Add("B"); arr.Add("C"); foreach(intninnewint[3]{0,1,2}){ arr.Add(n); } //從ArrayList中移除特定對象的第一個匹配項,注意是第一個
arr.Remove("A"); //移除ArrayList指定索引處的元素
arr.RemoveAt(3); //在指定處添加一個元素
arr.Insert(1,"D"); //遍歷ArrayList,并輸出所有元素
for(inti=0;i<arr.Count;i++){ Console.WriteLine(arr[i].ToString()); } }}通過Remove()移除元素通過Insert()插入元素-13-Stack類-1Stack類也叫做堆棧類,用來實現數據結構中的“先進后出”機制。Stack類中常用的方法:方法說明Push()將對象插入Stack的頂部。Pop()移除并返回位于Stack頂部的對象。Peek()返回位于Stack頂部的對象但不將其移除。ToArray()將Stack復制到新數組中。-14-Stack類-2示例:classStackDemo{ staticvoidMain(string[]args) { //實例化stack類的對象
Stackstack=newStack(); //入棧,使用push方法向stack對象中添加數據
for(inti=0;i<6;i++) { stack.Push(i); Console.WriteLine("{0}入棧",i); } //返回棧頂元素
Console.WriteLine("當前棧頂元素為:{0}",stack.Peek().ToString()); //出棧
Console.WriteLine("移出棧頂元素:{0}",stack.Pop().ToString()); //返回棧頂元素
Console.WriteLine("當前棧頂元素為:{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("棧中元素個數為:{0}",stack.Count); }}通過Push()方法進行壓棧操作通過Peek()方法獲取棧頂元素通過Pop()方法進行移棧操作-15-Queue類-1隊列的操作是“先進先出”的模式。在C#中提供了Queue類來實現隊列的操作。Queue類中常用的方法及說明:方法說明Enqueue()將對象添加到Queue的結尾處。Dequeue()移除并返回位于Queue開始處的對象。Peek()返回位于Queue開始處的對象但不將其移除。ToArray()將Queue元素復制到新數組。-16-Queue類-2示例:classQueueDemo{ staticvoidMain(string[]args) { //實例化Queue類的對象
Queuequeue=newQueue(); //入隊,使用Enqueue方法行Queue對象中添加元素
for(inti=1;i<6;i++) { queue.Enqueue(i); Console.WriteLine("{0}入隊",i); } //返回隊開始處的元素
Console.WriteLine("當前隊開始處元素為:{0}",queue.Peek().ToString()); //遍歷隊列
Console.Write("遍歷隊列:"); foreach(intiinqueue) { Console.Write(i+""); } Console.WriteLine(); //清空隊
while(queue.Count!=0) { intq=(int)queue.Dequeue(); Console.WriteLine("{0}出隊",q); } Console.WriteLine("隊列中元素的個數為:{0}",queue.Count); }}通過Enqueue()方法實現入隊操作通過Peek()方法獲取最先進入隊列中的元素-17-Hashtable類-1Hashtable類也叫做哈希表類,它是由一組鍵(Key)/值(Value)對集合組成。Hashtable類中常用的方法及說明:
方法說明Add()將帶有指定鍵和值的元素添加到Hashtable中Remove()從Hashtable中移除帶有指定鍵的元素ContainsKey()確定Hashtable是否包含特定鍵ContainsValue()確定Hashtable是否包含特定值-18-Hashtable類-2示例:classHashtableDemo{ staticvoidMain(string[]args){ //實例化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("學生的ID:{0}學生的姓氏:{1}",id,name); } //移除Hashtable中的元素
stuHashTable.Remove("03"); }}通過Add()方法實現元素插入操作通過Remove()方法實現元素移除操作-19-SortedList類-1SortedList類與Hashtable類相類似,每個數據也是由鍵/值對組成。它們之間的區(qū)別在于,SortedList類中的這些鍵/值對是按鍵來排序的,并且可以按照鍵和索引進行訪問。下表中列出了SortedList類中常用的方法及說明。方法說明Add()將帶有指定鍵和值的元素添加到SortedList中Remove()從SortedList中移除帶有指定鍵的元素RemoveAt()移除SortedList指定索引處的元素ContainsKey()確定SortedList是否包含特定鍵ContainsValue()確定SortedList是否包含特定值-20-SortedList類-2示例:classSortedListDemo{ staticvoidMain(string[]args){ //實例化Sorted
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 頭面工風險評估與管理模擬考核試卷含答案
- 物流無人機駕駛員安全理論能力考核試卷含答案
- 再生物資回收挑選工班組考核強化考核試卷含答案
- 鋁電解操作工保密能力考核試卷含答案
- 聚碳酸酯裝置操作工安全綜合考核試卷含答案
- 員工個人請假條
- 貓和老鼠介紹英文介紹
- 狙擊手培訓教學課件
- 2026年生物反應器材料創(chuàng)新項目商業(yè)計劃書
- 2026年智能鏡柜項目商業(yè)計劃書
- 2026長治日報社工作人員招聘勞務派遣人員5人參考題庫完美版
- 2025年經營分析報告
- 慢性心衰心肌代謝記憶的干細胞干預新策略
- 2026年孝昌縣供水有限公司公開招聘正式員工備考題庫有完整答案詳解
- 中建八局項目如何落實鋼筋精細化管理
- 鋼結構除銹后油漆施工方案
- 安徽省江南十校2025-2026學年高一上學期12月聯考生物(含答案)
- 杭州市臨平區(qū)2025年網格員招聘筆試必考題庫(含答案)
- 總裁思維培訓課件
- 骨科患者圍手術期靜脈血栓栓塞癥預防指南(2025年)
- 2025年信息化運行維護工作年度總結報告
評論
0/150
提交評論