最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

【回顧】C#從入門到精通第七章筆記

2021-03-18 20:46 作者:陪看書的小白  | 我要投稿

C#從入門到精通(第五版)第七章筆記

數(shù)組和集合

1.什么是數(shù)組

數(shù)組是具有相同數(shù)據(jù)類型的一組數(shù)據(jù)的集合。

數(shù)組中的每一個(gè)變量稱為數(shù)組的元素,數(shù)組能夠容納元素的數(shù)量稱為數(shù)組的長(zhǎng)度。

2.一維數(shù)組

2.1.一維數(shù)組的創(chuàng)建

數(shù)組作為對(duì)象允許使用new關(guān)鍵字進(jìn)行內(nèi)存分配。

一維數(shù)組的創(chuàng)建有以下兩種形式:

語法1:數(shù)據(jù)類型 []? 數(shù)組名;? ??

比如:

代碼如下:

int []arr;

但是聲明數(shù)組后,還不能訪問它的任何元素,因?yàn)槁暶鲾?shù)組只是給出了數(shù)組名字和元素?cái)?shù)據(jù)類型。

要想真正使用數(shù)組,還要為它分配內(nèi)存空間。在為數(shù)組分配內(nèi)存空間時(shí)必須指明數(shù)組的長(zhǎng)度。為數(shù)組分配內(nèi)存空間的語法格式如下:

數(shù)組名字=new 數(shù)組元素類型[數(shù)組元素個(gè)數(shù)]

比如:

代碼如下:

arr=new int[50];

語法2:數(shù)據(jù)類型 []? 數(shù)組名=new 數(shù)據(jù)類型 [數(shù)組元素個(gè)數(shù)];

這種創(chuàng)建數(shù)組的方法就是將數(shù)組的聲明和內(nèi)存的分配配合在一起進(jìn)行。

比如:

代碼如下:

int[] arr=new int[50];

2.2.一維數(shù)組的初始化

數(shù)組的初始化有兩種形式:

int[] arr1=new int[5]{1,2,3,4,5};

int[] arr2={1,2,3,4,5};

2.3.一維數(shù)組的使用

需要存儲(chǔ)多個(gè)值時(shí),可以使用一維數(shù)組,而且可以通過使用foreach 語句或數(shù)組的下標(biāo)將數(shù)組中的元素值讀出來。

例如:

static void Main(string[]? args)

{

int []arr={1,2,3,4,5);//定義一個(gè)一維數(shù)組,并為其賦值

foreach(int n in arr)/使用foreach 語句循環(huán)遍歷一維數(shù)組中的元素

Console.WriteLine("{0]",n+"");

Console.WriteLine();

}

當(dāng)然,也可以采用c語言的方式:

// 循環(huán)輸出數(shù)組元素

int[ ] array = new int[5] { 0, 1 ,2, 3, 4};? // 聲明并初始化一維數(shù)組

for (int i = 0; i < array.Length;i++ )? ? ? ?// 輸出數(shù)組中的所有元素

{

? ? ? ? Console.WriteLine(array[i]);

}?

3.二維數(shù)組

3.1.二維數(shù)組的創(chuàng)建

語法:

數(shù)據(jù)類型[,]? 數(shù)組名;? ? 或 數(shù)據(jù)類型[][]? 數(shù)組名;? ??

例如:

string[ ,]? ?arr1;

string[ ][ ]? arr2;?

同一維數(shù)組一樣,二維數(shù)組在聲明時(shí)也沒有分配內(nèi)存空間,同樣也要用關(guān)鍵字new來分配內(nèi)存,然后才能訪問每個(gè)變量。

對(duì)于第一種:

int[,] a=new int[2,4];?

對(duì)于第二種:

int[][] a = new int[2][];

a[0] = new int[2];

a[1] = new int[3];?

3.2.二維數(shù)組的初始化

例如:

int[,] myarr1 = new int[,]{ { 12, 0 }, { 45, 10 } };?

int[,] myarr2 = {{12,0},{45,10}};?

3.3.二維數(shù)組的使用

? static void Main(string[] args)

? ? ? ? {

? ? ? ? ? ? int[,] arr = new int[2, 2] { { 1, 2 }, { 3, 4 } };

? ? ? ? ? ? Console.Write("數(shù)組的行數(shù)為: ");

? ? ? ? ? ? Console.Write(arr.Rank);

? ? ? ? ? ? Console.Write("\n");

? ? ? ? ? ? Console.Write("數(shù)組的列數(shù)為:");

? ? ? ? ? ? Console.Write(arr.GetUpperBound(arr.Rank - 1) + 1);

? ? ? ? ? ? Console.Write("\n");

? ? ? ? ? ? for (int i = 0; i < arr.Rank; i++)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? string str = "";

? ? ? ? ? ? ? ? for (int j = 0; j < arr.GetUpperBound(arr.Rank - 1)+1; j++)

? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? str = str + Convert.ToString(arr[i, j]) + "";

? ? ? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? Console.Write(str);

? ? ? ? ? ? Console.Write("\n");


? ? ? ? ? ? }

4.數(shù)組的基本操作

C#中的數(shù)組是由System.Array類派生而來的引用對(duì)象,因此可以使用Array類中的各種方法對(duì)數(shù)組進(jìn)行各種操作。

對(duì)數(shù)組的操作可以分為靜態(tài)操作和動(dòng)態(tài)操作。

靜態(tài)操作主要包括查找、遍歷和排序等。

動(dòng)態(tài)操作主要包括插入、刪除、合并和拆分等。本節(jié)將對(duì)數(shù)組的各種操作進(jìn)行詳細(xì)講解。

4.1數(shù)組的遍歷? ?

使用foreach語句可以實(shí)現(xiàn)數(shù)組的遍歷功能,開發(fā)人員可以用foreach語句訪問數(shù)組中的每個(gè)元素,而不需要確切地知道每個(gè)元素的索引號(hào)。

比如:

遍歷一維數(shù)組?

int[ ] array = new int[5] { 0, 1 ,2, 3, 4};? // 聲明并初始化一維數(shù)組

foreach (int i in array )? ? ? ?// 輸出一維數(shù)組中的所有元素

{

? ? ? ? Console.WriteLine(array[i]);

}?

再比如:

遍歷二維數(shù)組?

代碼1:

? int[,] arr = new int[2, 3] { { 1, 2, 3 }, { 3, 4, 5 } };//定義二維數(shù)組

? ? ? ? ? ? for (int i = 0; i < 2; i++)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? for (int j = 0; j < 3; j++)

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? Console.Write(Convert.ToString(arr[i, j]) + " ");

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? Console.Write("\n");

? ? ? ? ? ? }

代碼2:

? int count = 0;

? ? ? ? ? ? int[,] arr = new int[2, 3] { { 1, 2, 3 }, { 3, 4, 5 } };//定義二維數(shù)組

? ? ? ? ? ? foreach (int i in arr)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? if(count!=0&&count%3==0)

? ? ? ? ? ? ? ? ? ? Console.Write("\n");

? ? ? ? ? ? ? ? Console.Write(i+" ");

? ? ? ? ? ? ? ? count++;

? ? ? ? ? ? }


4.2對(duì)數(shù)組進(jìn)行排序【兩種排序】??

C#中提供了用于對(duì)數(shù)組進(jìn)行排序的方法Array.Sort()和Array.Reverse(),

其中,Array.Sort()方法用于對(duì)一維Array數(shù)組中的元素進(jìn)行排序,

Array.Reverse()方法用于反轉(zhuǎn)一維Array數(shù)組或者部分Array數(shù)組中的元素順序。

?Array.Sort()方法:

? ? int[] arr1 = new int[] { 3, 9, 27, 6, 18, 12, 21, 15 };

? ? ? ? ? ? Array.Sort(arr1);

? ? ? ? ? ? foreach(int i in arr1)

? ? ? ? ? ? ? ? ? Console.Write(i+" ");

? ? ? ? ? ? Console.WriteLine();


Array.Reverse()方法:

? ? ? ? ? ? int[] arr2 = new int[] { 3, 9, 27, 6, 18, 12, 21, 15 };

? ? ? ? ? ? Array.Reverse(arr2);

? ? ? ? ? ? foreach (int o in arr2)

? ? ? ? ? ? ? ? ? Console.Write(o + " ");

? ? ? ? ? ? Console.WriteLine();



原數(shù)組: 3? 9? 27? 6? 18 12 21 15

Sort:3 6 9 12 15 18 21 27

Reverse:15 21 12 18 6 27 9 3

5、數(shù)組排序算法【其實(shí)之前說過的Sort和Reverse方法就可以實(shí)現(xiàn)排序,這些方法就沒必要再學(xué)。這是數(shù)據(jù)結(jié)構(gòu)的部分。學(xué)數(shù)據(jù)結(jié)構(gòu)的時(shí)候小白再帶大家學(xué)?!?/span>

(1).冒泡排序法? ?

(2).直接插入排序法? ?

(3).選擇排序法??

6、ArrayList集合

ArrayList類相當(dāng)與一種高級(jí)的動(dòng)態(tài)數(shù)組,它是Array類的升級(jí)版。

ArrayList位于System.Collections命名空間下,它可以動(dòng)態(tài)地添加和刪除元素??梢詫rrayList類看成擴(kuò)充功能的數(shù)組,但它并不等于數(shù)組。

與數(shù)組相比:

①.數(shù)組的容量是固定的,而ArrayList的容量可以根據(jù)需要自動(dòng)擴(kuò)充。

②.ArrayList 提供添加、刪除和插入某一范圍元素的方法,但在數(shù)組中,只能一次獲取或設(shè)置一個(gè)元素的值。

③.ArrayList提供將只讀和固定大小包裝返回到集合的方法,而數(shù)組不提供。

④.ArrayList只能是一維形式,而數(shù)組可以是多維的。? ? ? ? ? ? ? ? ??

6.1.ArrayList的構(gòu)造器有三種

第一種:? ? ArrayList list = new ArrayList();

第二種: (把數(shù)組的元素給ArrayList)

? int[] arr = new int[5] { 1, 2, 3, 4, 5 };

?ArrayList list = new ArrayList(arr);

第三種: 用指定的大小初始化內(nèi)部的數(shù)組。

ArrayList List=new ArrayList(10);

比如:

ArrayList List=new ArrayList(10);

for(int i=0;i< List.Count;i++)//給ArayList對(duì)象添加10個(gè)int元素

? ? ?List.Add(i);

ArrayList的常用屬性及說明如表所示:

ArrayList屬性

6.2.ArrayList元素的添加【兩種添加】

(1).Add方法

該方法用來將對(duì)象添加到ArrayList集合的結(jié)尾處,其語法格式如下:

public virtual int Add(Object value)

①.value:要添加到ArrayList的末尾處的Object,該值可以為空引用。

②.返回值:ArrayList索引,已在此處添加了value。

比如:

代碼如下:

int[] arr=new int[]{1,2,3,4,5,6};

ArrayList List=new ArrayList(arr); //使用聲明的一維數(shù)組實(shí)例化一個(gè)ArrayList對(duì)象

List.Add(7);

(2).Insert方法

該方法用來將元素插入ArrayList集合的指定索引處,其語法格式如下:

public vitual void Insert(int index,Object value)

①.index:從零開始的索引,應(yīng)在該位置插入value。

②.value:要插入的Object,該值可以為空引用。

比如:

int[] arr=new intl{1,2,3,4,5,6};

ArrayList List=new ArrayList(arr);

List. Insert(3,7);

6.3.ArrayList元素的刪除【四種刪除】

(1).Clear方法——全部刪除

語法:

public virtual void Clear ()

例如:

int[] arr=new int[] {1,2,3,4,5,6};?

ArrayList List=new ArrayList(arr);

List. Clear();

(2).Remove方法——?jiǎng)h除指定元素

語法:

public virtual void Remove (Object obj)

例如:

int[] arr=new int[]{1,2,3,4,5,6};

ArrayList List=new ArrayList(arr);

List. Remove(3);

(3).RemoveAt方法——?jiǎng)h除指定索引處元素

語法:

public virtual void RemoveAt (int index)

例如:

int[] arr=new int[]{1,2,3,4,5,6};

ArrayList List=new ArrayList(arr);?

List. RemoveAt(3);

(4).RemoveRange方法——?jiǎng)h除部分元素

語法:

public virtual void RemoveRange (int index,int count)

例如:

int []arr=new int[]{1,2,3,4,5,6};

ArrayList List=new ArrayList(arr);?

List. RemoveRange(3,2);

6.4.ArrayList歷遍

ArrayList集合的遍歷與數(shù)組類似,都可以使用foreach 語句

6.5.ArrayList元素的查找【三種查找】

(1).Contains方法【判斷是否包含這個(gè)元素】

語法:

public virtual bool Contains (Object item)

例如:

int[] arr = new int[] { 1, 2, 3, 4, 5, 6 };

ArrayList List = new ArrayList(arr);

Console.Write(List.Contains(2));


(2).IndexOf方法

查找元素,并返回與該元素匹配的第一個(gè)索引


(3).LastIndexOf方法

查找元素,并返回與該元素匹配的最后一個(gè)索引

例如:

int[] arr = new int[] { 1, 2, 3, 2,4,2, 5, 6 };

ArrayList List = new ArrayList(arr);

Console.Write(List.IndexOf(2));

Console.Write(List.LastIndexOf(2));



7、Hashtable類(System.Collections)【鍵值對(duì)】

7.1Hashtable構(gòu)造器

public Hashtable ()

public Hashtable (int capacity)

屬性圖:

7.2.Hashtable元素的添加【鍵值對(duì)】【一個(gè)添加】

Add——向Hashtable中添加元素

語法:

public virtual void Add (Object key,Object value)

key是要添加的鍵

value要添加的值

例如:

Hashtable hashtable = new Hashtable();?

hashtable.Add("id", "BH0001");?

hashtable.Add("name", "TM");

7.3.Hashtable元素的刪除【兩個(gè)刪除】

(1).Clear方法——?jiǎng)h除所有元素

語法:

?public virtual void Clear ()

(2).Remove方法——?jiǎng)h除指定鍵的元素

語法:

?public virtual void Remove (Object key)


7.4.Hashtable的遍歷

Hashtable的遍歷與數(shù)組類似,都可以使用foreach 語句。這里需要注意的是,由于Hashtable中的元素是一個(gè)鍵/值對(duì),

因此需要使用DictionaryEntry類型來進(jìn)行遍歷。DictionaryEntry類型表示一個(gè)鍵/

值對(duì)的集合。


例如:

Hashtable hashtable = new Hashtable(); //創(chuàng)建Hashtable對(duì)象

hashtable.Add("id", "BH0001"); //向Hashtable中添加元素

hashtable.Add("name", "TM");

hashtable.Add("sex", "男");

Console.WriteLine("\t 鍵\t 值");

foreach (DictionaryEntry dicEntry in hashtable)

{

? ? ?Console.WriteLine("\t " + dicEntry.Key + "\t " + dicEntry.Value);

}?

7.5.Hashtable元素的查找【三種查找】

在Hashtable中查找元素時(shí),可以使用Hashtable類提供的Contains方法、ContainsKey方法和ContainsValue方法。

下面對(duì)這3個(gè)方法進(jìn)行詳細(xì)介紹。

(1and2).Contains、ContainsKey方法——按鍵查找【它們功能一樣,語法一樣】

語法:

public virtual bool Contains (Object key)

public virtual bool ContainsKey (Object key)

例如:

Hashtable hashtable =new Hashtable();//實(shí)例化Hashtable對(duì)象

hashtable.Add("id","BH0001");//向Hashtable中添加元素

hashtable.Add("name","TM");

hashtable.Add("sex","男");

Console.WriteLine(hashtable.Contains("id"));//判斷Hashtable中是否包含指定的鍵

運(yùn)行結(jié)果為true。

(3).ContainsValue方法——按值查找

語法:

public virtual bool ContainsValue (Object value)

例如:

Hashtable hashtable=new Hashtable();//實(shí)例化Hashtable對(duì)象

hashtable.Add("id","BH0001");//向Hashtable中添加元素

hashtable.Add("name","TM");hashtable.Add("sex","男"”);

Console.WriteLine(hashtable.ContainsValue("id"));//判斷Hashtable中是否包含指定的鍵值

運(yùn)行結(jié)果為false。


【回顧一下】:

(1).對(duì)數(shù)組進(jìn)行排序【兩種排序】?

(2).ArrayList元素的添加【兩種添加】

(3).ArrayList元素的刪除【四種刪除】

(4).ArrayList元素的查找【三種查找】

(5).Hashtable元素的添加【一種添加】

(6).Hashtable元素的刪除【兩個(gè)刪除】【key】

(7).Hashtable元素的查找【三種查找】




第七章完!


【回顧】C#從入門到精通第七章筆記的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
惠安县| 英吉沙县| 涪陵区| 白玉县| 石景山区| 三河市| 库伦旗| 象州县| 六盘水市| 偃师市| 银川市| 会东县| 遂平县| 鄯善县| 台江县| 广饶县| 陈巴尔虎旗| 普兰县| 长汀县| 永宁县| 黄梅县| 宿州市| 柳河县| 怀集县| 中牟县| 奇台县| 望都县| 长治市| 青海省| 乐平市| 延吉市| 得荣县| 乌兰察布市| 徐闻县| 夏邑县| 平罗县| 新蔡县| 民丰县| 张家港市| 宜都市| 兴海县|