Microsoft C# | 陣列相關的協助方法

更新於 發佈於 閱讀時間約 9 分鐘

前言

  本篇文章將會介紹陣列的排列、反轉、清除、擴增等方法,能協助程式員在撰寫程式時的操作,並會介紹字元相關的方法。

陣列(Array)

  陣列可以儲存值的序列,當陣列中有資料,即可操控陣列順序和內容,有一些陣列協助程式的方法,執行字串作業,此類別包含操控陣列內容、排列與大小方法。

排列(Array.Sort(name);)

string[] pallets = { "B14", "A11", "B12", "A13" };

Console.WriteLine("Sorted...");
Array.Sort(pallets);
foreach (var pallet in pallets)
{
Console.WriteLine($"-- {pallet}");
}

重點關注Array.Sort(pallets);,用來以英數字元順序排列陣列中的項目。

Sorted...
-- A11
-- A13
-- B12
-- B14

反轉(Array.Reverse())

string[] pallets = { "B14", "A11", "B12", "A13" };

Console.WriteLine("Sorted...");
Array.Sort(pallets);
foreach (var pallet in pallets)
{
Console.WriteLine($"-- {pallet}");
}

Console.WriteLine("");
Console.WriteLine("Reversed...");
Array.Reverse(pallets);
foreach (var pallet in pallets)
{
Console.WriteLine($"-- {pallet}");
}

將用Array.Reverse(pallets); 來反轉項目順序,以下為官方的輸出:

Sorted...
-- A11
-- A13
-- B12
-- B14

Reversed...
-- B14
-- B12
-- A13
-- A11

清除(Array.Clear())

string[] pallets = { "B14", "A11", "B12", "A13" };
Console.WriteLine("");

Array.Clear(pallets, 0, 2);
Console.WriteLine($"Clearing 2 ... count: {pallets.Length}");
foreach (var pallet in pallets)
{
Console.WriteLine($"-- {pallet}");
}

  關注核心程式碼 Array.Clear(pallets,0,2); ,這項程式碼的意思是:再pallets中,從0開始清除兩個元素,這些值會存在,不會為空字串。

Clearing 2 ... count: 4
--
--
-- B12
-- A13

空字串與Null的比較

  Clear清除的元素不再參考記憶體中的字串,元素不會指向任何東西,這是新手不容易掌控的區別。

呼叫清除的元素

  例如Clear清除後的陣列項目為Null,在這種情況下使用方法(像是ToLower()),會出現較大的錯誤訊息,例外狀況的原因是我們嘗試在 C# 編譯器隱含地將 Null 轉換為空字串之前就嘗試在陣列中的元素的內容上呼叫方法。

因此需要在可能存取Null值的陣列元素前新增一項 if 判斷式。

if (pallets[0] != null)
Console.WriteLine($"After: {pallets[0].ToLower()}");

擴增(Array.Resize(ref pallets,6);)

string[] pallets = { "B14", "A11", "B12", "A13" };
Console.WriteLine("");

Array.Clear(pallets, 0, 2);
Console.WriteLine($"Clearing 2 ... count: {pallets.Length}");
foreach (var pallet in pallets)
{
Console.WriteLine($"-- {pallet}");
}

Console.WriteLine("");
Array.Resize(ref pallets, 6);
Console.WriteLine($"Resizing 6 ... count: {pallets.Length}");

pallets[4] = "C01";
pallets[5] = "C02";

foreach (var pallet in pallets)
{
Console.WriteLine($"-- {pallet}");
}

  關注 Array.Resize(ref pallets,6); ,呼叫Resize方法,並使用ref關鍵字以傳參考方式傳入pallets陣列,此案例中將pallets陣列元素從4個調整到6個,新元素值為Null,直到指派。

ref

  方法要求以傳值方式(預設)或傳參考方法(ref關鍵字)傳遞引數,而這兩種的差別需要解釋物件在 .NET 中如何管理,需要篇幅不小。

字串資料類型的Array方法

  類型為String變數具有許多可將單一字串轉換為較小字串陣列或個別字元陣列的內建方法。

ToCharArray()

string value = "abc123";
char[] valueArray = value.ToCharArray();

字元陣列合併成新字串

string value = "abc123";
char[] valueArray = value.ToCharArray();
Array.Reverse(valueArray);
string result = new string(valueArray);
Console.WriteLine(result);

Join(String.Join())

  若需要使用逗號分隔字元陣列中的元素,可用此方法

string value = "abc123";
char[] valueArray = value.ToCharArray();
Array.Reverse(valueArray);
// string result = new string(valueArray);
string result = String.Join(",", valueArray);
Console.WriteLine(result);

Split()

類型為字串之變數可用 Split() 方法,將新的逗點分隔值字串分割為字串陣列。

string value = "abc123";
char[] valueArray = value.ToCharArray();
Array.Reverse(valueArray);
// string result = new string(valueArray);
string result = String.Join(",", valueArray);
Console.WriteLine(result);

string[] items = result.Split(',');
foreach (string item in items)
{
Console.WriteLine(item);
}

輸出

3,2,1,c,b,a
3
2
1
c
b
a

後記

  陣列的這些協助方法感覺很有用,不過目前我還沒正式使用到陣列,這可能跟我沒接觸到太多筆資料有關係,但我相信未來我會很常接觸到這些東西。

參考資料

使用 C# 中的協助程式方法在陣列上執行作業


raw-image
























留言
avatar-img
留言分享你的想法!
avatar-img
瓶裝雪的沙龍
109會員
247內容數
對設計師如何成長為設計師好奇嗎? 2020年九月,我進入大學學習當一位設計師,從開始到沉寂,再到重燃熱忱,我將在方格子紀錄我的成長歷程、理念、心情,分享我在這段旅程中所經歷的故事。
瓶裝雪的沙龍的其他內容
2024/09/22
魔火術師是第三人稱動作射擊遊戲,屬於專題畢業製作,在畢業組成新的團隊後優化並上架。
Thumbnail
2024/09/22
魔火術師是第三人稱動作射擊遊戲,屬於專題畢業製作,在畢業組成新的團隊後優化並上架。
Thumbnail
2024/06/22
  遊戲將以不破壞遊戲體驗的情況下分析,避免劇透。因本文為求職遊戲企劃時所寫分析,故以遊戲企劃之角度撰寫文章,程式及美術僅簡易分析及解構。備註:後記有雷,如果有需要請避開。
Thumbnail
2024/06/22
  遊戲將以不破壞遊戲體驗的情況下分析,避免劇透。因本文為求職遊戲企劃時所寫分析,故以遊戲企劃之角度撰寫文章,程式及美術僅簡易分析及解構。備註:後記有雷,如果有需要請避開。
Thumbnail
2024/05/28
這篇文章將會講述新一代(young designer's exhibition 2024)的參賽與參展心得與體悟:從新一代概述到會場四天的分享,最後談談我的體悟與經驗。
Thumbnail
2024/05/28
這篇文章將會講述新一代(young designer's exhibition 2024)的參賽與參展心得與體悟:從新一代概述到會場四天的分享,最後談談我的體悟與經驗。
Thumbnail
看更多
你可能也想看
Thumbnail
孩子寫功課時瞇眼?小心近視!這款喜光全光譜TIONE⁺光健康智慧檯燈,獲眼科院長推薦,網路好評不斷!全光譜LED、180cm大照明範圍、5段亮度及色溫調整、350度萬向旋轉,讓孩子學習更舒適、保護眼睛!
Thumbnail
孩子寫功課時瞇眼?小心近視!這款喜光全光譜TIONE⁺光健康智慧檯燈,獲眼科院長推薦,網路好評不斷!全光譜LED、180cm大照明範圍、5段亮度及色溫調整、350度萬向旋轉,讓孩子學習更舒適、保護眼睛!
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
資料集中除了陣列這個外,還有另一個好幫手就是List,它跟陣列很像,我們直接來看一下怎麼用: 它的語法: 1.給予值 (1)單一新增: (2)陣列式新增: 例子: 2.取值 (1)foreach迴圈方式 (2)單一取值 3.取得List有多少個內容值 4.排序 想要反轉就再使用↓ 5.插入 6.複製
Thumbnail
資料集中除了陣列這個外,還有另一個好幫手就是List,它跟陣列很像,我們直接來看一下怎麼用: 它的語法: 1.給予值 (1)單一新增: (2)陣列式新增: 例子: 2.取值 (1)foreach迴圈方式 (2)單一取值 3.取得List有多少個內容值 4.排序 想要反轉就再使用↓ 5.插入 6.複製
Thumbnail
陣列運用、擷取字串   對於陣列裡的內容值除了把資料存進去外,若想要知道陣列維度、陣列大小、複製陣列的值到另一個陣列中、清除陣列的值等等的相關處理,甚至比較常用到的可能還需要做資料排列、查找資料等等,此時C#有一些屬性方法可以幫助到我們,不用寫複雜的迴圈,來看一看有哪些吧~
Thumbnail
陣列運用、擷取字串   對於陣列裡的內容值除了把資料存進去外,若想要知道陣列維度、陣列大小、複製陣列的值到另一個陣列中、清除陣列的值等等的相關處理,甚至比較常用到的可能還需要做資料排列、查找資料等等,此時C#有一些屬性方法可以幫助到我們,不用寫複雜的迴圈,來看一看有哪些吧~
Thumbnail
在使用陣列時一開始也是需要做宣告的,那麼這次說的內容是一維陣列,因此一維陣列宣告內容包括:資料型態、陣列名稱、以及陣列的大小。那麼我們就來看一下它的語法是如何的: 說明:等號左邊是做宣告,而右邊是做建立的動作。 一、初始值設定 那麼初始值要怎麼設定呢?這邊有幾種方法,用例子帶大家來看一看: 1.有給
Thumbnail
在使用陣列時一開始也是需要做宣告的,那麼這次說的內容是一維陣列,因此一維陣列宣告內容包括:資料型態、陣列名稱、以及陣列的大小。那麼我們就來看一下它的語法是如何的: 說明:等號左邊是做宣告,而右邊是做建立的動作。 一、初始值設定 那麼初始值要怎麼設定呢?這邊有幾種方法,用例子帶大家來看一看: 1.有給
Thumbnail
C# 陣列 – (C#教學) – Array為程式設計中最基本元素之一. 陣列就是用一個variable記下多個同類的值(記憶體中的位置), 以供日後所調用. 相關頁面: C# List – 學會List的5種基本應用方法 – 初始化, 加入值, 更新值, 刪除值, foreach迴圈
Thumbnail
C# 陣列 – (C#教學) – Array為程式設計中最基本元素之一. 陣列就是用一個variable記下多個同類的值(記憶體中的位置), 以供日後所調用. 相關頁面: C# List – 學會List的5種基本應用方法 – 初始化, 加入值, 更新值, 刪除值, foreach迴圈
Thumbnail
本篇文章將會介紹陣列的排列、反轉、清除、擴增等方法,能協助程式員在撰寫程式時的操作,並會介紹字元相關的方法。
Thumbnail
本篇文章將會介紹陣列的排列、反轉、清除、擴增等方法,能協助程式員在撰寫程式時的操作,並會介紹字元相關的方法。
Thumbnail
本文會介紹靜態結構 - 串列(List)與動態結構 - 鏈結串列(Linked List)來實踐陣列的不同功能,如:刪除、計算元素個數與反轉。
Thumbnail
本文會介紹靜態結構 - 串列(List)與動態結構 - 鏈結串列(Linked List)來實踐陣列的不同功能,如:刪除、計算元素個數與反轉。
Thumbnail
本篇文章將會講述陣列 (Array) 及 foreach 陳述式,陣列是寫程式中關於大筆資料的儲存方式,而 foreach 是處理大筆資料的處理方式之一。
Thumbnail
本篇文章將會講述陣列 (Array) 及 foreach 陳述式,陣列是寫程式中關於大筆資料的儲存方式,而 foreach 是處理大筆資料的處理方式之一。
Thumbnail
這篇我們來看一個在程式開發很常見也很常用的一個東西:Array 陣列 Array在所有的程式開發中還蠻常見的,也一定會出現,因為有很多的資料都會是一長串的,需要有一個物件來去做集中管理。
Thumbnail
這篇我們來看一個在程式開發很常見也很常用的一個東西:Array 陣列 Array在所有的程式開發中還蠻常見的,也一定會出現,因為有很多的資料都會是一長串的,需要有一個物件來去做集中管理。
Thumbnail
陣列(Array)、Vector的關係
Thumbnail
陣列(Array)、Vector的關係
Thumbnail
一維陣列(One dimension array)
Thumbnail
一維陣列(One dimension array)
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News