【基礎級】-[陣列]-運用

更新於 2023/04/10閱讀時間約 5 分鐘
  對於陣列裡的內容值除了把資料存進去外,若想要知道陣列維度、陣列大小、複製陣列的值到另一個陣列中、清除陣列的值等等的相關處理,甚至比較常用到的可能還需要做資料排列、查找資料等等,此時C#有一些屬性方法可以幫助到我們,不用寫複雜的迴圈,來看一看有哪些吧~

一、資料排列

由小到大排列語法:
Array.Sort(陣列名稱);
由大到小排列語法:
Array.Reverse(陣列名稱)
在做這個排列的時候都只能是一維陣列的狀況下喔!
想要由大到小排列就必須先做Sort()後,再做Reverse()唷!
這邊用幾個例子看一下:

1.整數排列

Sort排列
Reverse排列
Sort 和 Reverse 排列結果
有沒有看到兩者的差異了,還有另外一種排序就是有有兩個陣列一起排列的,是按照索引值一起排列的哦~我們來看一下:
兩組陣列排列
兩組陣列排列結果
可以看到一開始我給予的score陣列的分數是沒經過排列,再看一下name陣列的名字,經過Sort()排列,當score和name的陣列放在一起就是是相對應的小名96分、甜心50分...這樣的對應方式。
因為是將score陣列排在前面,所以sort()排列就會以score陣列為基準帶動著name的索引值去做排列

2.字串排列

字串排列
字串排列結果
這邊字串的排列會依照英文字母去做排列Sort()是由A~Z,先從第一個去做比對,接著再往後去做比對,比對完就會是Sort()排列出來的結果,想要由大到小,一樣再使用Reverse()就可以反過來了喔!

二、搜尋

【語法1】
變數名稱 = Array.IndexOf(陣列名稱 , 內容值)
這一個搜尋的方法通常也是以一個陣列為主在指定的陣列中去做搜尋內容值的值,倘若找不到的話就會傳回「-1」,若找到就會顯示最前面第一個搜尋到的索引值
【語法2】
變數名稱 = Array.IndexOf(陣列名稱 , 內容值 , 從第幾個索引開始)
這一個語法就是多了一個條件,就是從哪一個索引開始往後尋找,找到後也是顯示第一個找到的索引值。
【語法3】
變數名稱 = Array.IndexOf(陣列名稱 , 內容值 , 從第幾個元素開始 , 往後共要找多少元素)
這一個語法又再增加了一個條件,就是除了指定從哪個索引開始搜尋外,還多了從這個索引往後共要再找多少個索引,也是一樣顯示第一個找到的索引值。

那麼我們用例子來看一看
(1)尋找陣列有/無重複值
陣列搜尋 - 無重複
陣列搜尋 - 有重複
因陣列與搜尋關係,兩者結果一樣
兩者結果一樣是因為搜尋狀況找到第一個就只會顯示第一個找到的索引值了,無論後面有沒有重複都已經不影響。
(2)找不到搜尋的值
搜尋陣列沒有的
找不到結果
(3)有設定起始位置
設定起始位置
有設定起始位置的結果
(4)有設定起始位置以及往後要搜尋的數量-有找到
再設定往後要搜尋的數量
再設定往後要搜尋的數量結果
(5)搜尋有設定起始位置以及往後要搜尋的數量-未找到
再設定往後要搜尋的數量-未找到
再設定往後要搜尋的數量-未找到結果

三、想知道陣列相關內容

後面就由大家自行動手操作囉~每一個都跟上面實例一樣都各別建立button和label實際操作看看這些有什麼不一樣,邊做邊學邊記憶。

1.想得到陣列維度

int 變數名稱 = 陣列名稱.Rank;

2.想得到陣列大小

int 變數名稱 = 陣列名稱.GetLength(指定的維度);

3.想要得到陣列所有維度總共的大小

int 變數名稱 = 陣列名稱.Length;

4.想要改變陣列大小

Array.Reise(ref 陣列名稱,陣列大小);
說明:
當我們修改陣列大小時,若比原本大,那麼值就會補0;若比原本小,則會遺失多餘的值,所以要修改的時候要注意!

5.想要複製陣列

原本陣列.CopyTo(要複製到的陣列,起始索引值)
說明:
將原本所有的值全部複製到另一個陣列中,從我們所設定的起始索引值開始。

6.想要刪除陣列中的值

Array.Clear(陣列名稱,起始索引值,要刪除的數量)
說明:
刪除的值會更改為0,會從起始索引值開始計算到我們設定要刪除的數量為止,其餘的值就不會改變。

四、擷取字串功能

對於字串部分,還有一個可以拆解字串的小功能就是「Split」,有時候這個非常好用,例如擷取取得當下的時間、擷取一大串的字、又或是程式代碼的溝通之類的就會使用到擷取字串這個功能
那麼為什麼要放在陣列這邊呢?因為陣列也會用到跟擷取字串的功能哦!所以我就一並在這裡分享。
擷取字串語法
字串.Split(‘間隔的字元’)
這個間隔的字元就像是摩斯密碼一樣,在密密麻麻的資料中拿取需要的字串,但是這個間隔的字元必須是一樣的才行哦!例如都是用「,」、「!」...隔開,就是只能用一種字元。
那陣列跟這個有何關聯?我們用個例子說明:
string color = “紅色&綠色&藍色&黃色&紫紅色&象牙白色&紫色”;
string[] arrayColor = color.Split(‘&’);
這樣的程式執行的結果就會是:
arrayColor[0] =紅色、arrayColor[1] =綠色、arrayColor[2] =藍色、arrayColor[3] = 黃色、arrayColor[4] = 紫紅色、arrayColor[5] =象牙白色、arrayColor[6] = 紫色
有沒有看到也可以利用Spilt擷取字串的方式來轉換成陣列哦!而且我覺得這個超級好玩可以玩摩斯密碼哈哈哈!
下一次會補充分享一個跟陣列很相近的List
即將進入廣告,捲動後可繼續閱讀
為什麼會看到廣告
avatar-img
21會員
43內容數
Hello~ Welcome to my blog~❤ 這邊會分享我在程式這條道路中的學習與成長, 過程中從而了解自己的不足,再學習。 希望透過分享的方式, 也讓正在學習程式的夥伴們一起學習, 我們一起加油吧~ 「彼此都會成為彼此之間的影響力」(´,,•ω•,,)♡ ❣
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
橙果杏的沙龍 的其他內容
  陣列就陣列怎麼還有不規則陣列呢?一維陣列就一排沒什麼大問題,但是!二維以上的多維陣列不知道有沒有發現大家的長度都是一致的?用三維來說組合起來的箱子不是四邊形,就是長(正)方體,那麼不規則陣列組合起來就不一定是完整的長(正)方體了,可能就會出現東缺一腳、西缺一角的情形發生,我們用三維的圖形來表示:
上一篇的一維陣列是指一排箱子,二維陣列就會往上疊變成兩排箱子,那麼三維呢?並不是再往上疊三排箱子就是三維而是又多了後面深度,也就是三個維度。用圖示: 這樣有比較懂嗎?!沒關係!之前用箱子,那現在用數學來說明好了, 一維是x軸(長度) 二維是xy軸(長度+高度) 三維是xyz軸(長度+高度+深度) 四
在使用陣列時一開始也是需要做宣告的,那麼這次說的內容是一維陣列,因此一維陣列宣告內容包括:資料型態、陣列名稱、以及陣列的大小。那麼我們就來看一下它的語法是如何的: 說明:等號左邊是做宣告,而右邊是做建立的動作。 一、初始值設定 那麼初始值要怎麼設定呢?這邊有幾種方法,用例子帶大家來看一看: 1.有給
  陣列(Array)是什麼?它是一個很好用的東西哦!當我們要處理100個學生的成績的時候,如果沒有陣列的話,那麼我們的變數就要命名100個不同的變數,這樣的程式雖然不是不能執行,想一想,是不是有一點要在命名上會想破頭殼呢?因為要想100個不同的變數麻~   你說:「那就變數後面加入編號就好啦~如
什麼是迴圈?就是不停地、不斷地在做同樣的事,所以才稱「重複性迴圈」,因為一直再輪迴,那麼像上一篇的例子,不到60分就要一直補考是要怎麼用呢?重複性迴圈主要有for迴圈、while迴圈、do...while迴圈,有何不一樣?接下來就來介紹一下它們? 一、for迴圈 這一個會運用到初始值、繼續執行的條件
這是一個判斷選擇的交叉路口,有分為兩種:一種是條件性的,另一種是重複性的。 什麼是「條件性」呢?通常中文的造句就是:如果...就....這樣類型的句子,通常都會有條件式的來判斷,舉例:如果你分數60以上就代表及格,否則為不及格。 那麼「重複性」呢?就如同國小國中的小考,有些認真的老師希望學生可以達到
  陣列就陣列怎麼還有不規則陣列呢?一維陣列就一排沒什麼大問題,但是!二維以上的多維陣列不知道有沒有發現大家的長度都是一致的?用三維來說組合起來的箱子不是四邊形,就是長(正)方體,那麼不規則陣列組合起來就不一定是完整的長(正)方體了,可能就會出現東缺一腳、西缺一角的情形發生,我們用三維的圖形來表示:
上一篇的一維陣列是指一排箱子,二維陣列就會往上疊變成兩排箱子,那麼三維呢?並不是再往上疊三排箱子就是三維而是又多了後面深度,也就是三個維度。用圖示: 這樣有比較懂嗎?!沒關係!之前用箱子,那現在用數學來說明好了, 一維是x軸(長度) 二維是xy軸(長度+高度) 三維是xyz軸(長度+高度+深度) 四
在使用陣列時一開始也是需要做宣告的,那麼這次說的內容是一維陣列,因此一維陣列宣告內容包括:資料型態、陣列名稱、以及陣列的大小。那麼我們就來看一下它的語法是如何的: 說明:等號左邊是做宣告,而右邊是做建立的動作。 一、初始值設定 那麼初始值要怎麼設定呢?這邊有幾種方法,用例子帶大家來看一看: 1.有給
  陣列(Array)是什麼?它是一個很好用的東西哦!當我們要處理100個學生的成績的時候,如果沒有陣列的話,那麼我們的變數就要命名100個不同的變數,這樣的程式雖然不是不能執行,想一想,是不是有一點要在命名上會想破頭殼呢?因為要想100個不同的變數麻~   你說:「那就變數後面加入編號就好啦~如
什麼是迴圈?就是不停地、不斷地在做同樣的事,所以才稱「重複性迴圈」,因為一直再輪迴,那麼像上一篇的例子,不到60分就要一直補考是要怎麼用呢?重複性迴圈主要有for迴圈、while迴圈、do...while迴圈,有何不一樣?接下來就來介紹一下它們? 一、for迴圈 這一個會運用到初始值、繼續執行的條件
這是一個判斷選擇的交叉路口,有分為兩種:一種是條件性的,另一種是重複性的。 什麼是「條件性」呢?通常中文的造句就是:如果...就....這樣類型的句子,通常都會有條件式的來判斷,舉例:如果你分數60以上就代表及格,否則為不及格。 那麼「重複性」呢?就如同國小國中的小考,有些認真的老師希望學生可以達到
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
「葉子,區長說要開電腦課,請你當講師行嗎?教操作Word及Excel。」 一日,人事主任翩翩登場,問道,在我回答前又補了一句:「有講師費喔。」 嗯?嗯?我看起來是這麼勢利的人嗎! 就算是免費授課,我也是可以考慮為同仁犧牲奉獻的…… 不過既然都這麼有誠意了,當然好囉!
Thumbnail
大紀町位於三重縣中南部,東、南與紀伊山地的分水嶺接壤,總面積233.32平方公里森林約佔91%,地形普遍陡峭,地勢整體較陡峭,流經町內的一級河川宮川、大內山川、藤川沿岸散佈著住宅和農田,私人住宅集中在少量土地上,農業用地約佔3.5%,住宅用地約佔0.9%,是典型的沿海農村地區。雖然氣候相對溫暖,但與
Thumbnail
在實務上,條碼槍傳送的資訊可能包含不可見字符或控制字符。這可能是因為條碼槍在傳送條碼數據時使用了一些特殊字符,這些字符在可見字符集合之外,例如 \x06 就是 ASCII 中的 "ACK" 控制字符。 本文將探討,如何查詢及處理這些特殊字符。
Thumbnail
今天來記錄版本升級的做法(z版號),Kubernetes的版本更新的很快,所以版本升級是每個管理者所必須要會的必備技能,建議版本升級之前要先去確認升級路徑,不是每個版本號都能一次升級到你需要的版本。
Thumbnail
在運動場上會讓人感到熱血、興奮的動作有哪些呢?一般來說當然是做出逆轉對手、後來居上的運動表現,像是超車、壓哨球、再見全壘打等等;當然也會有單一動作,好比是灌籃、殺球、三振、不可思議的旋轉。然而所有複雜的動作跟驚人的表現,都是建立在最基本的動作裡,所謂卓越的運動表現,基本概念不外乎是更快、更高、更強。
Thumbnail
去懂得自己合作上會遇到其他職務的細節是件必然的事!也因為懂得與理解,那些龜毛難搞的堅持與固執,才能有更好的磨合,工作起來順暢、合作起來愉快,才不會花大把的時間在抱怨工作、厭世人生!(工作快快做好,快點去玩不好嗎?)
Thumbnail
對於不是哲學背景的人來說,邏輯療法重在邏輯規則的分析,是相對好切入哲諮的方式。課後,我也閱讀了邏輯療法創始人Elliot Cohen的著作,綜合課堂和讀書筆記,整理成本篇文章,為邏輯
再來就是上板滑行拉~~ 泰勒上板到「勉強滑行」練習了2-3次(天) 現在回想,從站上滑板開始到能在平地順利滑動我會拆分成三個步驟: 上板、單腳滑行練習、雙腳上板加速
大家好,我是吳照麟,66歲的法定老人,也是大家"科技養生"路上的好友。 老陳經過三年的工作室"平衡整復"服務,已經在最近超過10,000人次的服務總量;同時,也發現許多的客人在面對身體健康問題時,伴隨許多的疑問?這些疑問不僅影響他們對是否身體生病了或只是身體轉好反應?+病症或病因的判斷?+調理或吃藥
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
「葉子,區長說要開電腦課,請你當講師行嗎?教操作Word及Excel。」 一日,人事主任翩翩登場,問道,在我回答前又補了一句:「有講師費喔。」 嗯?嗯?我看起來是這麼勢利的人嗎! 就算是免費授課,我也是可以考慮為同仁犧牲奉獻的…… 不過既然都這麼有誠意了,當然好囉!
Thumbnail
大紀町位於三重縣中南部,東、南與紀伊山地的分水嶺接壤,總面積233.32平方公里森林約佔91%,地形普遍陡峭,地勢整體較陡峭,流經町內的一級河川宮川、大內山川、藤川沿岸散佈著住宅和農田,私人住宅集中在少量土地上,農業用地約佔3.5%,住宅用地約佔0.9%,是典型的沿海農村地區。雖然氣候相對溫暖,但與
Thumbnail
在實務上,條碼槍傳送的資訊可能包含不可見字符或控制字符。這可能是因為條碼槍在傳送條碼數據時使用了一些特殊字符,這些字符在可見字符集合之外,例如 \x06 就是 ASCII 中的 "ACK" 控制字符。 本文將探討,如何查詢及處理這些特殊字符。
Thumbnail
今天來記錄版本升級的做法(z版號),Kubernetes的版本更新的很快,所以版本升級是每個管理者所必須要會的必備技能,建議版本升級之前要先去確認升級路徑,不是每個版本號都能一次升級到你需要的版本。
Thumbnail
在運動場上會讓人感到熱血、興奮的動作有哪些呢?一般來說當然是做出逆轉對手、後來居上的運動表現,像是超車、壓哨球、再見全壘打等等;當然也會有單一動作,好比是灌籃、殺球、三振、不可思議的旋轉。然而所有複雜的動作跟驚人的表現,都是建立在最基本的動作裡,所謂卓越的運動表現,基本概念不外乎是更快、更高、更強。
Thumbnail
去懂得自己合作上會遇到其他職務的細節是件必然的事!也因為懂得與理解,那些龜毛難搞的堅持與固執,才能有更好的磨合,工作起來順暢、合作起來愉快,才不會花大把的時間在抱怨工作、厭世人生!(工作快快做好,快點去玩不好嗎?)
Thumbnail
對於不是哲學背景的人來說,邏輯療法重在邏輯規則的分析,是相對好切入哲諮的方式。課後,我也閱讀了邏輯療法創始人Elliot Cohen的著作,綜合課堂和讀書筆記,整理成本篇文章,為邏輯
再來就是上板滑行拉~~ 泰勒上板到「勉強滑行」練習了2-3次(天) 現在回想,從站上滑板開始到能在平地順利滑動我會拆分成三個步驟: 上板、單腳滑行練習、雙腳上板加速
大家好,我是吳照麟,66歲的法定老人,也是大家"科技養生"路上的好友。 老陳經過三年的工作室"平衡整復"服務,已經在最近超過10,000人次的服務總量;同時,也發現許多的客人在面對身體健康問題時,伴隨許多的疑問?這些疑問不僅影響他們對是否身體生病了或只是身體轉好反應?+病症或病因的判斷?+調理或吃藥