第常用數(shù)據(jù)類型的用法_第1頁
第常用數(shù)據(jù)類型的用法_第2頁
第常用數(shù)據(jù)類型的用法_第3頁
第常用數(shù)據(jù)類型的用法_第4頁
第常用數(shù)據(jù)類型的用法_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

會計學(xué)1第常用數(shù)據(jù)類型的用法3.1字符串字符串比較方法string.Compare(strings1,strings2)

如果s1大于s2,結(jié)果為1;如果s1等于s2,結(jié)果為0;如果s1小于s2,結(jié)果為-1。string.Compare(strings1,strings2,boolignoreCase)ignoreCase確定是否區(qū)分大小寫比較兩個字符串是否相等,使用:Equals方法==第2頁/共43頁第1頁/共43頁3.1字符串

字符串查找Contains方法:用于查找一個字符串中是否包含指定的子字符串。語法為:

publicboolContains(stringvalue)

例如:stringstr1="thisisastring.";

boolb=str1.Contains("is");IndexOf方法:求某個字符或者子串在字符串中出現(xiàn)的位置。兩種最常用的重載形式:

publicintIndexOf(strings)publicintIndexOf(strings,intstartIndex)LastIndexOf方法:LastIndexOf方法的用法與IndexOf方法相同,查找最后一次出現(xiàn)的位置。

第3頁/共43頁第2頁/共43頁3.1字符串例如:Console.WriteLine(str1.IndexOf("is"));//結(jié)果為2(注意序號從0開始)Console.WriteLine(str1.LastIndexOf("is"));//結(jié)果為5IndexOfAny方法:查找某個字符串中是否包含某些字符(多個不同的字符)。

常用語法:publicintIndexOfAny( char[]anyOf)

例如:strings1="123abc123abc123";char[]c={'a','b','5','8'};intx=s1.IndexOfAny(c);//x結(jié)果為3第4頁/共43頁第3頁/共43頁3.1字符串截取字符串

Substring(intstartIndex,intcount)截取字符串從startIndex位開始,截取長度為count的字符串例如:stringstr=“abc123”;stringss=str.Substring(1,4);Console.WriteLine(ss);//bc12

第5頁/共43頁第4頁/共43頁3.1字符串刪除指定數(shù)量的字符Remove(intstartIndex,intcount)

例如:stringstr1="thisisastring.“Console.WriteLine(str1.Remove(1,2));//結(jié)果為tsisastring字符串替換Replace(stringoldStr,stringnewStr)例如:stringstr1="thisisastring.“Console.WriteLine(str1.Replace("is","xy"));//結(jié)果為thxyxyastring第6頁/共43頁第5頁/共43頁3.1字符串插入字符串

例如:strings1="abcdabcd";strings2=s1.Insert(2,"12");//結(jié)果為"ab12cdabcd“從字符串開頭或結(jié)尾刪除指定的字符:利用TrimStart刪除字符串首部空格,利用TrimEnd刪除字符串尾部空格,利用Trim刪除字符串首部和尾部空格。例如:strings1="□□□□thisisabook";strings2="thatisapen□□□□";strings3="□□isapen□□";Console.WriteLine(s1.TrimStart());//刪除首部空格Console.WriteLine(s2.TrimEnd());//刪除尾部空格Console.WriteLine(s3.Trim());//刪除首部和尾部空格第7頁/共43頁第6頁/共43頁3.1字符串字符串的合并與拆分Join方法:在數(shù)組的每個元素之間串聯(lián)指定的分隔符,從而產(chǎn)生單個串聯(lián)的字符串。語法為:

publicstaticstringJoin( stringseparator,string[]value)Split方法:將字符串按照指定的一個或多個字符進行分離,從而得到一個字符串?dāng)?shù)組。常用語法為:

publicstring[]Split(paramschar[]separator)第8頁/共43頁第7頁/共43頁字符串的合并和拆分舉例例如:string[]sArray1={"123","456","abc"};strings1=string.Join(",",sArray1);//結(jié)果為"123,456,abc"string[]sArray2=s1.Split(',');//sArray2得到的結(jié)果與sArray1相同strings2="abc12;34,56";string[]sArray3=s2.Split(',',';','');//分隔符為逗號、分號、空格Console.WriteLine(string.Join(Environment.NewLine,sArray3));輸出結(jié)果:abc123456第9頁/共43頁第8頁/共43頁3.1字符串ToUpper大寫ToLower小寫例如:strings1="Thisisastring";strings2=s1.ToUpper();//s2結(jié)果為THISISASTRINGstrings3=Console.ReadLine();if(s3.ToLower()=="yes"){Console.WriteLine("OK");}第10頁/共43頁第9頁/共43頁3.2String和StringBuilderString類實際上表示的是一系列不可變的字符。說其實例是“不可變的”,是因為無法直接修改給該字符串分配的堆中的字符串。例如,在myString的后面接上另一個字符串:myString+="andabitmore";其實際操作并不是在原來myString所占內(nèi)存空間的后面直接附加上第二個字符串,而是返回一個新String實例,即重新為新字符串分配內(nèi)存空間。StringBuilder類位于System.Text名稱空間下,使用StringBuilder類每次重新生成新字符串時不是再生成一個新實例,而是直接在原來字符串占用的內(nèi)存空間上進行處理,而且它可以動態(tài)的分配占用的內(nèi)存空間大小。第11頁/共43頁第10頁/共43頁StringBuilder類用法舉例【例3-1】StringBuilder類的基本用法。usingSystem;usingSystem.Text;namespaceStringBuilderExample{classProgram{publicstaticvoidMain(){StringBuildersb=newStringBuilder();sb.Append("string1");sb.AppendLine("string2");sb.Append("string3");strings=sb.ToString();Console.WriteLine(s);Console.ReadLine();}}}第12頁/共43頁第11頁/共43頁3.3數(shù)組

數(shù)組用于存儲同一種類型的數(shù)據(jù)。數(shù)組是一種引用類型,而不是值類型。數(shù)組是按照數(shù)組名、數(shù)據(jù)元素的類型和維數(shù)來描述的。C#中可以有一維數(shù)組、多維數(shù)組、交錯數(shù)組。1.數(shù)組的聲明與初始化聲明數(shù)組時,既可以一開始就指定數(shù)組元素的個數(shù),也可以一開始不指定元素個數(shù),而是在使用數(shù)組元素前動態(tài)地指定元素個數(shù)。例如:int[]a=newint[30];string[]mystring={"first","second","third"};第13頁/共43頁第12頁/共43頁數(shù)組的聲明語法舉例

數(shù)組類型語法例子一維數(shù)組數(shù)據(jù)類型[]數(shù)組變量;int[]myArray;二維數(shù)組數(shù)據(jù)類型[,]數(shù)組變量;int[,]myArray;三維數(shù)組數(shù)據(jù)類型[,,]數(shù)組變量;int[,,]myArray;交錯數(shù)組數(shù)據(jù)類型[][]數(shù)組變量;int[][]myArray;第14頁/共43頁第13頁/共43頁數(shù)組的秩與數(shù)組長度2.數(shù)組的秩與數(shù)組長度數(shù)組的秩(rank)是指數(shù)組的維數(shù),例如一維數(shù)組秩為1,二維數(shù)組秩為2。數(shù)組長度是指數(shù)組中所有元素的個數(shù)。例如:int[]a=newint[10];//數(shù)組長度為10int[,]b=newint[3,5];//數(shù)組長度為3*5=15,其中第0維長度為3,第1維長度為5第15頁/共43頁第14頁/共43頁數(shù)組用法舉例【例3-2】編寫一個控制臺應(yīng)用程序,定義一個二維數(shù)組,分別輸出數(shù)組的秩、數(shù)組長度以及數(shù)組中的每個元素值。第16頁/共43頁第15頁/共43頁數(shù)組3.一維數(shù)組在C#中,數(shù)組的下標(biāo)默認是從0開始索引的。Length屬性表示數(shù)組的長度。4.多維數(shù)組多維數(shù)組指維數(shù)大于1的數(shù)組,常用的是二維數(shù)組和三維數(shù)組。C#語言支持兩種類型的二維數(shù)組,一種是二維矩形數(shù)組,另一種是二維交錯數(shù)組。對于二維矩形數(shù)組,數(shù)組中的每一行都有相同的列數(shù)。例如:int[,]n2=newint[,]{{1,2},{3,4},{5,6}};第17頁/共43頁第16頁/共43頁數(shù)組5.交錯數(shù)組交錯數(shù)組相當(dāng)于一維數(shù)組的每一個元素又是一個數(shù)組,也可以把交錯數(shù)組稱為“數(shù)組的數(shù)組”。例如:int[][]n1=newint[2][]{newint[]{2,4,6},newint[]{1,3,5,7,9}};交錯數(shù)組的每一個元素既可以是一維數(shù)組,也可以是多維數(shù)組。第18頁/共43頁第17頁/共43頁交錯數(shù)組用法舉例【例3-3】交錯數(shù)組的用法。第19頁/共43頁第18頁/共43頁數(shù)組6.動態(tài)改變數(shù)組的大小Resize方法

publicstaticvoidResize<T>(refT[]array,intnewSize)這是一種泛型表示形式。其中T表示數(shù)組類型,array為要調(diào)整大小的一維數(shù)組,該數(shù)組從零開始;如果為null則新建具有指定大小的數(shù)組。如果newSize大于舊數(shù)組的Length,則分配一個新數(shù)組,并將所有元素從舊數(shù)組復(fù)制到新數(shù)組。如果newSize小于舊數(shù)組的Length,則分配一個新數(shù)組,并將元素從舊數(shù)組復(fù)制到新數(shù)組直到新數(shù)組被填滿為止;舊數(shù)組中的剩余元素將被忽略。如果

newSize與舊數(shù)組的

Length相等,則此方法不執(zhí)行任何操作。第20頁/共43頁第19頁/共43頁動態(tài)改變數(shù)組的大小舉例【例3-4】演示如何動態(tài)改變一維數(shù)組的大小。第21頁/共43頁第20頁/共43頁數(shù)組7.數(shù)組元素的排序與查找C#語言中還提供了Sort和Reverse這樣的靜態(tài)方法,這些方法用快速排序算法將一維數(shù)組中的元素按照升序或降序排列。還可以方便地查找指定的元素。例如Contains方法和IndexOf方法等。第22頁/共43頁第21頁/共43頁數(shù)組排序和查找舉例【例3-5】一維數(shù)組的排序和查找。第23頁/共43頁第22頁/共43頁數(shù)組的統(tǒng)計以及數(shù)組和字符串間的轉(zhuǎn)換利用數(shù)組的Average方法、Sum方法、Max方法和Min方法可以求數(shù)組中所有元素的平均值、求所有元素的和、最大值和最小值。對于字符串?dāng)?shù)組,可以直接利用字符串的Join方法和Split方法實現(xiàn)字符串和字符串?dāng)?shù)組之間的轉(zhuǎn)換。第24頁/共43頁第23頁/共43頁數(shù)組元素統(tǒng)計和字符串轉(zhuǎn)換舉例【例3-6】演示如何統(tǒng)計數(shù)組中的元素以及如何實現(xiàn)數(shù)組和字符串之間的轉(zhuǎn)換。第25頁/共43頁第24頁/共43頁3.3枚舉枚舉(enum)是一組命名常量的集合,稱為枚舉成員列表。它可以為一組在邏輯上密不可分的整數(shù)值提供便于記憶的符號,從而使代碼更清晰,也易于維護。聲明enum類型變量的語法為:

[附加聲明][訪問修飾符]enum名稱[:數(shù)據(jù)類型]{枚舉列表}

例如:enumdays{Mon,Tue,Wed,Thu,F(xiàn)ri,Sat}

注意:enumdays:byte{X1=255,X2}//錯誤第26頁/共43頁第25頁/共43頁3.4泛型泛型(Generic)是具有占位符(類型參數(shù))的類、結(jié)構(gòu)、接口和方法,它與普通類的區(qū)別是泛型多了一個或多個表示類型的占位符,這些占位符用尖括號括起來。例如:publicclassMyClass<T>{publicTMyProp{get;set;}//定義屬性MyProppublicvoidPrint(){Console.WriteLine(MyProp);}}第27頁/共43頁第26頁/共43頁泛型【例3-8】演示泛型的定義與用法。第28頁/共43頁第27頁/共43頁可空泛型可空類型是泛型結(jié)構(gòu)Nullable<T>的實例。

例如,Nullable<Int32>讀作“可以為null的Int32”,可以將其賦值為任一個32位整數(shù)值,也可以將其賦值為null值。可空類型具有以下特性:(1)可空類型表示可被賦值為null值的值類型變量。但是要注意,由于引用類型已支持null值,因此不能用該類型創(chuàng)建基于引用類型的null類型。(2)語法“T?”是泛型“Nullable<T>”的簡寫,此處的T為值類型。這兩種形式可以互換。如Nullable<int>也可以寫為int?。(3)程序員可以使用泛型的HasValue和Value只讀屬性測試是否為空和檢索值,如果此變量包含值,則HasValue屬性返回True;如果此變量的值為空,則返回False。第29頁/共43頁第28頁/共43頁3.5泛型集合在System.Collections.Generic命名空間下,提供了常用的泛型集合類。泛型集合類非泛型集合類泛型集合用法舉例List<T>ArrayListList<string>dinosaurs=newList<string>();Dictionary<TKey,Tvalue>HashtableDictionary<string,string>d=newDictionary<string,string>();

d.Add("txt","notepad.exe");Queue<T>QueueQueue<string>q=newQueue<string>();

q.Enqueue("one");Stack<T>StackStack<string>s=newStack<string>();

s.Push("one");

s.Pop();SortedList<TKey,TValue>SortedListSortedList<string,string>list=newSortedList<string,string>();

list.Add("txt","notepad.exe");

list.TryGetValue("tif",outvalue))第30頁/共43頁第29頁/共43頁哈希集合HashSetHashSet<T>泛型類提供了高性能的數(shù)學(xué)集合運算,一個HashSet<T>對象的容量是指該對象可以容納的元素個數(shù)。常用方法:UnionWith方法:并集或Set加法IntersectWith方法:交叉ExceptWith方法:set減法SymmetricExceptWith方法:余集第31頁/共43頁第30頁/共43頁列表和排序列表List<T>泛型類表示可通過索引訪問的強類型對象列表,該類提供了對列表進行搜索、排序和操作的方法。常用方法如下:Add方法:將指定值的元素添加到列表中。Insert方法:在列表的中間插入一個新元素。Contains方法:測試該列表中是否存在某個元素。Remove方法:從列表中移除帶有指定鍵的元素。Clear方法:移除列表中的所有元素。SortedList<T>排序列表,用法與List<T>類似。第32頁/共43頁第31頁/共43頁列表和排序列表舉例【例3-9】演示泛型列表的定義與用法。第33頁/共43頁第32頁/共43頁鏈表LinkedList<T>為雙向鏈表。LinkedList<T>對象中的每個節(jié)點都屬于LinkedListNode<T>類型。每個節(jié)點又指向其Next節(jié)點和Previous節(jié)點。LinkedList<T>接受

null引用作為引用類型的有效Value屬性,并且允許重復(fù)值。如果LinkedList<T>為空,則First和Last屬性為null。第34頁/共43頁第33頁/共43頁字典和排序字典Dictionary<TKey,TValue>泛型類提供了從一組鍵到一組值的映射。字典中的每個添加項都由一個值及其相關(guān)聯(lián)的鍵組成,通過鍵來檢索值。該泛型類提供的常用方法如下。Add方法:將帶有指定鍵和值的元素添加到字典中。TryGetValue方法:獲取與指定的鍵相關(guān)聯(lián)的值。ContainsKey方法:確定字典中是否包含指定的鍵。Remove方法:從字典中移除帶有指定鍵的元素。第35頁/共43頁第34頁/共43頁隊列Queue<T>泛型類表示對象的先進先出集合。隊列在按接收順序存儲消息方面非常有用,存儲在隊列中的對象在一端插入,從另一端移除。隊列可以保存null值并且允許有重復(fù)的元素。常用方法如下:Enqueue方法:將指定元素插入列尾。Dequeue方法:隊列首元素出列。第36頁/共43頁第35頁/共43頁堆棧Stack<T>泛型類表示同類型實例的大小可變的后進先出(LIFO)集合。堆棧可以保存null值并且允許有重復(fù)值。常用方法如下:Push方法:將指定元素插入棧頂。Pop方法:彈出棧頂元素。第37頁/共43頁第36頁/共43頁3.6日期與時間處理對日期和時間處理的常用類是DateTime類和TimeSpan類。DateTime類表示范圍在0001年1月1日午夜12:00:00到9999年12月31日晚上11:59:59之間的日期和時間,最小時間單位等于100納秒。TimeSpan類表示一個時間間隔。其范圍在Int64.MinValue到Int64.MaxValue之間。第38頁/共43頁第37頁/共43頁3.6日期與時間處理舉例【例3-10】DateTime類的用法舉例?!纠?-11】顯示當(dāng)前日期和時間。第39頁/共43頁第38頁/共43頁3.7數(shù)學(xué)運算Math類位于System命名空間下,為三角函數(shù)、對數(shù)函數(shù)和其他通用數(shù)學(xué)函數(shù)提供常數(shù)和靜態(tài)方法。例如:

int

溫馨提示

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

評論

0/150

提交評論