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

更新於 發佈於 閱讀時間約 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
大家好,我是woody,是一名料理創作者,非常努力地在嘗試將複雜的料理簡單化,讓大家也可以體驗到料理的樂趣而我也非常享受料理的過程,今天想跟大家聊聊,除了料理本身,料理創作背後的成本。
Thumbnail
哈囉~很久沒跟各位自我介紹一下了~ 大家好~我是爺恩 我是一名圖文插畫家,有追蹤我一段時間的應該有發現爺恩這個品牌經營了好像.....快五年了(汗)時間過得真快!隨著時間過去,創作這件事好像變得更忙碌了,也很開心跟很多厲害的創作者以及廠商互相合作幫忙,還有最重要的是大家的支持與陪伴🥹。  
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
這篇內容,將會講解什麼是陣列,以及與陣列相關的知識。包括陣列的簡介、陣列的資料限制、陣列的維度、一維陣列、二維陣列。
Thumbnail
題目敘述 Make Two Arrays Equal by Reversing Subarrays 題目給定兩個輸入陣列,請問能否透過子陣列的反轉讓兩個陣列相等? 子陣列的反轉操作次數不受限制。 如果可以,返回True 如果不行,返回False
Thumbnail
給定一個輸入非負整樹陣列nums,請找出k值,使得陣列中恰好有k個元素大於等於 k。如果無解,回傳-1。尋找k值的方法包括排序法和二分搜尋法,時間複雜度都為O(n log n),空間複雜度為O(1)。關鍵知識點是當解空間具有遞增或遞減的性質時,可以用二分搜尋法加快搜尋效率。
Thumbnail
分享在網路上看到的陣列題目。通常 for...of 的 value 是陣列中的每個值,那如果我們在迭代中對陣列操作會發生什麼事? 題目來源:https://x.com/_jayphelps/status/1774640511158022335?s=20
Thumbnail
排序是EXCEL很常用很基礎的一個功能,他可以幫我們把資料依照指定的順序排列。 但通常我們使用都是以欄(直)的方向進行排序,其實EXCEL也可以依據列(橫)的方向進行排續哦😁 下圖是LINE社群網友提出的問題,想要把上圖的原始資料變成下圖。(相關問題可以加入LINE社群唷) 這時候用排序(尋
Thumbnail
題目會給定一個陣列nums和一個目標值goal。計算子陣列總和=goal的數目有多少。演算法包含前綴和和字典的技巧,時間複雜度為O(n),空間複雜度為O(n)。
Thumbnail
題目敘述 題目會給定我們兩個字串。 第一個是指定順序的字串order。 第二個是輸入字串s。 要求我們依據order給定的順序,重新排列s。 如果出現order中沒有出現的字母,任意位置皆可。 合法答案可能不只一組,輸出其中一種即可。 題目的原文敘述 測試範例 Example
Thumbnail
最近每天都有同學在解題社群提問這類型的問題,有些同學甚至po出解答來提問,表示看了解答卻還是看不懂,畢竟有時候「詳解」也沒辦法完整表達所有觀念。 排列組合是一門龐大的章節,許多人聞排組而色變,但排列組合的本質其實還是「窮舉法」,也就是把全部的可能通通列出來,只是很多地方我們可以透過計算讓窮舉變得更
Thumbnail
題目敘述 題目會給定我們兩個整數陣列作為輸入nums1, nums2,要求我們找出兩個陣列的差異值。 找出在nums1但是不在nums2的元素,以陣列的形式放在answer[0]輸出。 找出在nums2但是不在nums1的元素,以陣列的形式放在answer[1]輸出。 題目的原文敘述
Thumbnail
題目敘述 題目給定我們一個輸入陣列nums 要求我們以正、負交叉排列的方式重組陣列,並且必須保持原本的相對順序。 並且以陣列的形式輸出返回答案。 例[5, 1, -2, -3] 重排後為 [5, -2, 1, -3] 題目的原文敘述 測試範例 Example 1: Input:
Thumbnail
大家好,我是woody,是一名料理創作者,非常努力地在嘗試將複雜的料理簡單化,讓大家也可以體驗到料理的樂趣而我也非常享受料理的過程,今天想跟大家聊聊,除了料理本身,料理創作背後的成本。
Thumbnail
哈囉~很久沒跟各位自我介紹一下了~ 大家好~我是爺恩 我是一名圖文插畫家,有追蹤我一段時間的應該有發現爺恩這個品牌經營了好像.....快五年了(汗)時間過得真快!隨著時間過去,創作這件事好像變得更忙碌了,也很開心跟很多厲害的創作者以及廠商互相合作幫忙,還有最重要的是大家的支持與陪伴🥹。  
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
這篇內容,將會講解什麼是陣列,以及與陣列相關的知識。包括陣列的簡介、陣列的資料限制、陣列的維度、一維陣列、二維陣列。
Thumbnail
題目敘述 Make Two Arrays Equal by Reversing Subarrays 題目給定兩個輸入陣列,請問能否透過子陣列的反轉讓兩個陣列相等? 子陣列的反轉操作次數不受限制。 如果可以,返回True 如果不行,返回False
Thumbnail
給定一個輸入非負整樹陣列nums,請找出k值,使得陣列中恰好有k個元素大於等於 k。如果無解,回傳-1。尋找k值的方法包括排序法和二分搜尋法,時間複雜度都為O(n log n),空間複雜度為O(1)。關鍵知識點是當解空間具有遞增或遞減的性質時,可以用二分搜尋法加快搜尋效率。
Thumbnail
分享在網路上看到的陣列題目。通常 for...of 的 value 是陣列中的每個值,那如果我們在迭代中對陣列操作會發生什麼事? 題目來源:https://x.com/_jayphelps/status/1774640511158022335?s=20
Thumbnail
排序是EXCEL很常用很基礎的一個功能,他可以幫我們把資料依照指定的順序排列。 但通常我們使用都是以欄(直)的方向進行排序,其實EXCEL也可以依據列(橫)的方向進行排續哦😁 下圖是LINE社群網友提出的問題,想要把上圖的原始資料變成下圖。(相關問題可以加入LINE社群唷) 這時候用排序(尋
Thumbnail
題目會給定一個陣列nums和一個目標值goal。計算子陣列總和=goal的數目有多少。演算法包含前綴和和字典的技巧,時間複雜度為O(n),空間複雜度為O(n)。
Thumbnail
題目敘述 題目會給定我們兩個字串。 第一個是指定順序的字串order。 第二個是輸入字串s。 要求我們依據order給定的順序,重新排列s。 如果出現order中沒有出現的字母,任意位置皆可。 合法答案可能不只一組,輸出其中一種即可。 題目的原文敘述 測試範例 Example
Thumbnail
最近每天都有同學在解題社群提問這類型的問題,有些同學甚至po出解答來提問,表示看了解答卻還是看不懂,畢竟有時候「詳解」也沒辦法完整表達所有觀念。 排列組合是一門龐大的章節,許多人聞排組而色變,但排列組合的本質其實還是「窮舉法」,也就是把全部的可能通通列出來,只是很多地方我們可以透過計算讓窮舉變得更
Thumbnail
題目敘述 題目會給定我們兩個整數陣列作為輸入nums1, nums2,要求我們找出兩個陣列的差異值。 找出在nums1但是不在nums2的元素,以陣列的形式放在answer[0]輸出。 找出在nums2但是不在nums1的元素,以陣列的形式放在answer[1]輸出。 題目的原文敘述
Thumbnail
題目敘述 題目給定我們一個輸入陣列nums 要求我們以正、負交叉排列的方式重組陣列,並且必須保持原本的相對順序。 並且以陣列的形式輸出返回答案。 例[5, 1, -2, -3] 重排後為 [5, -2, 1, -3] 題目的原文敘述 測試範例 Example 1: Input: