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

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

第 19 講:數(shù)組(一):一維、二維和高維數(shù)組

2021-04-04 08:47 作者:SunnieShine  | 我要投稿

我們將進入一個新的板塊:數(shù)組(Array)。數(shù)組是將一系列數(shù)據(jù)歸并放在一起處理的一種特殊的數(shù)據(jù)類型。在 C# 里,一共有三種數(shù)組:多維數(shù)組(Multi-dimensional Array)、鋸齒數(shù)組(也叫交錯數(shù)組,Jigsaw Array)和混合數(shù)組(Mixed Array)。下面我們挨個介紹一下。

和 C 語言的數(shù)組的概念一樣,但用法不同,所以我們給大家介紹具體寫法格式的時候,希望你能多練習(xí)、多理解。

Part 1 一維數(shù)組

在 C 語言里,我們使用中括號,追加到變量之后,來表達和區(qū)分它和普通的變量不同。在 C# 里,我們這么書寫:

C# 里擁有上述三種書寫格式。第一種,我們使用 new 語句,在后面書寫 int[3] 來表達數(shù)組長度是 3;第二種,我們使用 new 語句,在后面初始化數(shù)組的每一個元素;第三種是第二種的簡寫。在初始化的時候,可以不寫 new int[] 這個部分。

當然,第二種寫法里 new int[] 也可以寫出來長度(后面有 6 個元素,因此可以寫成 new int[6]。但是這個 6 是跟著后面元素個數(shù)的,因此這個 6 可以省略)。

另請注意,C# 把 int 類型的數(shù)組變量記作 int[],即寫在類型的右側(cè)緊跟一個中括號。

使用數(shù)組,我們可以采用中括號來獲取數(shù)組指定位置上的數(shù)值。

這樣一來, a、b、cd 四個變量分別是 1、2、4 和 8。中括號里的數(shù)值稱為下標(也叫索引,Index)。C# 里規(guī)定,數(shù)組下標從 0 開始,即第一個元素要寫成 [0],第二個元素要寫成 [1],等等。

可能你會問我,如果我寫了一個過大或者過小的索引,比如說 arr[-1] 或者 arr[100],會怎么樣呢?答案當然很簡單:由于這種行為是非預(yù)期的行為,因此結(jié)果當然了產(chǎn)生異常了。實際上,運行期間,你就會看到,這樣的代碼會產(chǎn)生一個所謂的 IndexOutOfRangeException 類型的異常,這剛好代表你傳入的索引是無效的:out of range 不就是超出范圍的意思嘛。

另外,我們還可以使用 for 循環(huán),對每一個元素進行取值:

比如這樣,我們使用 for 循環(huán)來對每一個元素進行取值操作,然后輸出它們。

另外,在 C# 里,我們?nèi)绻〕鰯?shù)組總長度,我們使用的是 .Length 語法。我們直接在數(shù)組本身后追加 .Length 來取出數(shù)組一共多少個元素。這一點和 C 語言不同:C 語言的數(shù)組是取長度是用的 sizeof(數(shù)組) / sizeof(元素類型)

不過,C# 還允許另外一種循環(huán)類型:foreach 循環(huán)。在循環(huán)的內(nèi)容里,我們沒有講解這個類型的循環(huán),因為這個循環(huán)類型必須使用數(shù)組或別的集合才可以使用。它的格式是 foreach (類型 變量名 in 集合)。

這種循環(huán)類型專門針對于一個數(shù)組來用的話,我們就不必使用索引來寫那么長了;從 foreach 循環(huán)來看,element 就是數(shù)組里面的每一個元素。直接取出數(shù)值本身,然后 element 就是已經(jīng)是元素本身了。

目前來說,foreach 對數(shù)組可用;但是別的可以用 foreach 循環(huán)的東西我們還說不到,所以我們先等到用到的時候再來說。

Part 2 二維數(shù)組

和一維數(shù)組不一樣的是,二維數(shù)組是兩個維度的數(shù)組類型。你可以當成一個矩陣。

我們使用這樣的語法,來初始化一個二維數(shù)組的每一個元素。當然,new int[3, 4] 是可以不寫的;就算要寫的話,這里的 3 和 4 也可以不寫:new int[,]。注意這種語法格式。類型寫的是 int[,],這表示 int 作為元素本體的數(shù)組類型,數(shù)組是二維數(shù)組,因為中括號里用了一個逗號。一個逗號表示將數(shù)組分成兩個維度。

如果要獲取里面的數(shù)值,我們依舊使用中括號,不過語法是這樣的:

注意語法格式。arr[0, 0] 表示取第 1 行第 1 列的元素,arr[1, 0] 表示取第 2 行第 1 列的元素。和前文一樣,0 表示第一個。

另外,通過 for 循環(huán),我們也可以遍歷每一個元素:

foreach 循環(huán)對多維數(shù)組的取值是“展開”式的。不論多少個維度,foreach 就把元素挨個展開排成一排挨個遍歷(Traverse)。所謂的遍歷,就是取每一個元素的過程。

最后,使用 .Length 得到的結(jié)果,可能和你預(yù)期結(jié)果不一樣。.Length 取出來的結(jié)果是數(shù)組總的元素個數(shù);二維數(shù)組雖然有維度的概念,但 .Length 照樣取的是所有維度所有元素個數(shù)的總和。

Part 3 高維數(shù)組

高維數(shù)組專門指代三維及其以上的數(shù)組類型。我們拿三維數(shù)組舉例:

三維數(shù)組雖然排版不是很好理解,不過你可以認為這是一個有長、有寬、有高的三維矩陣。另外,new int[2, 3, 4] 也可以不寫;也可以寫成 new int[,,]。兩個逗號將中括號分成三部分,暗示是三個維度。

遍歷和前文一致,使用 .GetLength 來獲取每一個維度的長度,foreach 循環(huán)獲取每一個元素。

三維數(shù)組以及別的高維數(shù)組是一樣的,.Length 取出來的也是所有維度所有元素的個數(shù)總和。


第 19 講:數(shù)組(一):一維、二維和高維數(shù)組的評論 (共 條)

分享到微博請遵守國家法律
驻马店市| 陆川县| 来凤县| 保靖县| 张北县| 海安县| 房山区| 赤城县| 海丰县| 泾阳县| 太保市| 循化| 竹山县| 新巴尔虎右旗| 利辛县| 瓦房店市| 巴林右旗| 塘沽区| 吉隆县| 土默特左旗| 襄樊市| 沙坪坝区| 蓝田县| 泾川县| 蒙阴县| 道孚县| 尼勒克县| 绥宁县| 宁阳县| 舞阳县| 黄骅市| 怀远县| 岳普湖县| 峨眉山市| 丰台区| 商洛市| 滁州市| 盈江县| 都安| 岳阳县| 石门县|