CSharp(C#)語言_第十章(數組 & foreach語句)

10.1 數組

ps:建議多使用一維數組和交錯數組(性能更高)

  數組實際上是由一個變量名稱表示的一組同類型的數據元素。每個元素通過變量名稱和一個或多個方括號中的索引來訪問

數組的訪問方式:
  數組名 索引
  MyArray[index]

10.1.1 關於數組的重要定義

  • 元素 數組的獨立數據項稱作元素。數組的所有元素必須是相同類型的,或繼承自相同類型
  • 秩/維度 數組可以有任何爲正數的維度數。數組的維度稱作
  • 維度長度 數組的每一個維度有一個長度,就是這個方向的位置個數
  • 數組長度 數組的所有維度中的元素的總和稱作數組的長度
    在C#中數組一旦創建,大小就固定了(C#不支持動態數組)
    數組的索引從 0 開始

10.2 數組的類型

C#提供了兩種類型的數組

  • 一維數組可以認爲是單行元素或元素向量
  • 多維數組是由主向量中的位置組成,每一個位置本身又是一個數組,稱爲子數組。子數組向量中的位置本身又是一個子數組
  • 還有兩種類型的多維數組:矩陣數組交錯數組

矩陣數組交錯數組的特徵

矩陣數組
某個維度的所有子數組有相同長度的多維數組
不管有多少維度,總是使用一組方括號
ps:int x = myArray[4, 6, 1]

交錯數組
每一個子數組都是獨立數組的多維數組
可以有不同長度的子數組
爲數組的每一個維度使用一對方括號
ps:Array[2][7][4]

10.3 數組是對象

  數組實例是從System.Array繼承的對象。由於數組是從BCL基類繼承,它們也繼承了很多有用的方法

  • Rank 返回數組維度數的屬性
  • Length 返回數組長度(數組中所有元素的個數)的屬性

儘管數組總是引用類型,但是數組的元素可以是值類型也可以是引用類型

  • 如果存儲的元素都是類值類型,數組被稱作值類型數組
  • 如果存儲在數組中的元素都是引用類型對象,數組被稱爲引用類型數組

10.4 一維數組

一維數組的聲名
秩說明符:,  英文逗號
數據類型[ 秩說明符 ] 數組名;

一維數組聲明並實例化的方式

數據類型 [] 數組名 = new 數據類型[ 數組長度 ];
數據類型 [] 數組名 = new 數據類型[]{ 數據1, 數據2, ....};
數據類型 [] 數組名 = { 數據1, 數據2, ....};
數據類型 [] 數組名 = new 數據類型[ 數組長度 ]{ 數據1, 數據2, ....};

10.5 矩陣數組

矩陣數組的聲明
數據類型 [ , , ] 數組名; //三維數組
數據類型 [ , ] 數組名; //二維數組

矩形數組的聲明應注意以下幾點

  • 可以使用任意多的秩說明符
  • 不能在數組類型區域中放數組維度長度。秩是數組類型的一部分,而維度長度不是類型的一部分
  • 數組聲明後,維度數就是固定的了。然而,維度長度直到數組實例化時纔會確定

矩陣數組的實例化
ps:int [ , , ] arr = new int [3,6,2];
矩陣數組實例化和爲數據初始化方式類似

10.6 交錯數組

交錯數組是數組的數組。與矩陣數組不同,交錯數組的子數組的元素個數可以不同

	// arr是3個int數組的數組(讀法)
	int [][]  arr = new int [3][];	//聲明並創建頂層數組
		...							//聲明並創建子數組

聲明方式
交錯數組的聲明語法要求每一個維度都有一對獨立的方括號。數組變量聲明中的方括號數決定了數組的

  • 交錯數組可能的維度可以是大於1的任意整數
  • 和矩形數組一樣,維度長度不能包括在數組類型的聲明部分

int[][] SomeArr; //秩等於2
int[][][] OtherArr; /秩等於3

實例化交錯數組

int [][] Arr = new int[3][];	//實例化頂層數組

Arr[0] = new int []{1, 2, 3};				//實例化子數組
Arr[1] = new int []{12, 22, 32, 42};		//實例化子數組
Arr[2] = new int []{10, 20, 30, 40, 50};	//實例化子數組

10.7 數組繼承的有用成員(部分)

成員 類型 生存期 意義
Rank 屬性 實例 獲取數組的維度數
Length 屬性 實例 獲取數組中所有維度的元素總和
GetLength 方法 實例 返回數組的指定維度的長度
Clear 方法 靜態 將某一範圍內的元素設置爲0或nu1l
Sort 方法 靜態 在一維數組中對元素進行排序
BinarySearch 方法 靜態 使用二進制搜索,搜索一維數組中的值
Clone 方法 實例 進行數組的淺複製——對於值類型數組和引用類型數組,都只複製元素
Indexof 方法 靜態 返回一維數組中遇到的第一個值
Reverse 方法 靜態 反轉一維數組中的某一範圍內的元素
GetUpperBound 方法 實例 獲取指定維度的上限

10.8 foreach語句

foreach語法:
froeach( Type Indentifiter in ArrayNmae) { Satement }

  • 迭代變量是臨時的,並且和數組中元素的類型相同。foreach語句使用迭代變量來相繼表示數組中的每一個元素
  • Type 是數組中元素的類型,可以顯示提供,也可以使用 var 隱式的通過編譯器來推斷
  • Indentifiter 迭代變量的名字
  • ArrayName 要處理數組的名字
  • Satement 語句或語句塊
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章