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

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

前言

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

陣列(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# 中的協助程式方法在陣列上執行作業






















為什麼會看到廣告
avatar-img
106會員
247內容數
對設計師如何成長為設計師好奇嗎? 2020年九月,我進入大學學習當一位設計師,從開始到沉寂,再到重燃熱忱,我將在方格子紀錄我的成長歷程、理念、心情,分享我在這段旅程中所經歷的故事。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
瓶裝雪的沙龍 的其他內容
C#跟其他程式語言最大的差別,在於它有嚴格規定資料型態,這篇文章將會講述 C#中資料型態轉換的方式,並藉由官方的範例來介紹各個關鍵字和陳述式,說明他們的運作原理。
前言   這篇文章將會介紹 for 陳述式和 foreach 陳述式,以及比較兩者的差別,並撰寫範例介紹用途。 迴圈使用條件   當我們需要重複執行程式碼達特定次數,或需要控制.NET執行階段去執行反覆項目的方式時,會使用到迴圈,在遊戲產程式中,迴圈更是不可少的重要程式碼區塊。 for 關鍵字
這篇文章將會介紹運算式與程式碼小知識,並介紹Switch-case這常用的陳述式,並提供範例的程式碼。
Side Project 是打破傳說魔咒的解咒法,對於新鮮人來說,要找工作大多都要求工作經驗,然而這就跟打副本需要至少兩次刷副本的經驗一樣,若在團隊中沒有熟人,永遠會卡在等級一。
這篇文章將會告訴你詭野西部這一款遊戲的設計巧思,優秀的設計點以及創新之處。
這篇文章將會講述在程式員中的慣例,命名規則,這些規則並不具有強制力,但能讓你在寫程式時有更好的可讀性。
C#跟其他程式語言最大的差別,在於它有嚴格規定資料型態,這篇文章將會講述 C#中資料型態轉換的方式,並藉由官方的範例來介紹各個關鍵字和陳述式,說明他們的運作原理。
前言   這篇文章將會介紹 for 陳述式和 foreach 陳述式,以及比較兩者的差別,並撰寫範例介紹用途。 迴圈使用條件   當我們需要重複執行程式碼達特定次數,或需要控制.NET執行階段去執行反覆項目的方式時,會使用到迴圈,在遊戲產程式中,迴圈更是不可少的重要程式碼區塊。 for 關鍵字
這篇文章將會介紹運算式與程式碼小知識,並介紹Switch-case這常用的陳述式,並提供範例的程式碼。
Side Project 是打破傳說魔咒的解咒法,對於新鮮人來說,要找工作大多都要求工作經驗,然而這就跟打副本需要至少兩次刷副本的經驗一樣,若在團隊中沒有熟人,永遠會卡在等級一。
這篇文章將會告訴你詭野西部這一款遊戲的設計巧思,優秀的設計點以及創新之處。
這篇文章將會講述在程式員中的慣例,命名規則,這些規則並不具有強制力,但能讓你在寫程式時有更好的可讀性。
你可能也想看
Google News 追蹤
Thumbnail
大家好,我是woody,是一名料理創作者,非常努力地在嘗試將複雜的料理簡單化,讓大家也可以體驗到料理的樂趣而我也非常享受料理的過程,今天想跟大家聊聊,除了料理本身,料理創作背後的成本。
Thumbnail
哈囉~很久沒跟各位自我介紹一下了~ 大家好~我是爺恩 我是一名圖文插畫家,有追蹤我一段時間的應該有發現爺恩這個品牌經營了好像.....快五年了(汗)時間過得真快!隨著時間過去,創作這件事好像變得更忙碌了,也很開心跟很多厲害的創作者以及廠商互相合作幫忙,還有最重要的是大家的支持與陪伴🥹。  
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
這篇內容,將會講解什麼是陣列,以及與陣列相關的知識。包括陣列的簡介、陣列的資料限制、陣列的維度、一維陣列、二維陣列。
Thumbnail
題目敘述 Make Two Arrays Equal by Reversing Subarrays 題目給定兩個輸入陣列,請問能否透過子陣列的反轉讓兩個陣列相等? 子陣列的反轉操作次數不受限制。 如果可以,返回True 如果不行,返回False
Thumbnail
Array可以說是各種語言除了基本型別之外,最常用的資料型別與容器之一了。 Array 這種連續格子狀的資料結構,在Python要怎麼表達呢? 建立一個空的陣列 最簡單也最直接的寫法就是 array = [] # Python list [] 就對應到大家熟知的array 陣列型態的資料結
※ 好用的陣列迭代器:forEach forEach 的使用時機: 需要從頭到尾把陣列中的每一個元素都印出來 ,就適合使用 forEach 方法。 forEach 的必要參數是一個函式: forEach() 的功能是把陣列的每個元素都丟進某個函式執行一次,因此必要的參數是一個函式。 語法:
Thumbnail
分享在網路上看到的陣列題目。通常 for...of 的 value 是陣列中的每個值,那如果我們在迭代中對陣列操作會發生什麼事? 題目來源:https://x.com/_jayphelps/status/1774640511158022335?s=20
Thumbnail
題目敘述 題目會給定我們一條鏈結串列Linked list的起始節點,要求我們刪除Linked List正中央的節點。 註: 正中央的節點,題目定義為索引為floor( 串列長度 / 2 ) 的節點,索引從零(Head Node)出發開始數。 例如 1 -> 2 -> 3 -> 4 鏈結
Thumbnail
題目敘述 題目會給定我們兩個整數陣列作為輸入nums1, nums2,要求我們找出兩個陣列的差異值。 找出在nums1但是不在nums2的元素,以陣列的形式放在answer[0]輸出。 找出在nums2但是不在nums1的元素,以陣列的形式放在answer[1]輸出。 題目的原文敘述
Thumbnail
題目敘述 題目會給定我們一個整數陣列nums,要求我們把裡面的0做元素交換,把0都搬到陣列的右邊。題目要求必須in-place在原本的陣列裡面做操作,不可以額外建立新的陣列。 題目的原文敘述 測試範例 Example 1: Input: nums = [0,1,0,3,12] Outpu
Thumbnail
題目敘述 題目給定我們一個輸入陣列nums 要求我們以正、負交叉排列的方式重組陣列,並且必須保持原本的相對順序。 並且以陣列的形式輸出返回答案。 例[5, 1, -2, -3] 重排後為 [5, -2, 1, -3] 題目的原文敘述 測試範例 Example 1: Input:
Thumbnail
題目敘述 題目會給我們一個整數陣列,裡面包含各種正整數,每回合可以消去兩個相同的數字,或者消去三個相同的數字。問最少需要幾次消去,才能讓陣列為空? 如果無解,則返回-1 詳細的題目可在這裡看到 測試範例 Example 1: Input: nums = [2,3,3,2,2,4,2,3,
Thumbnail
大家好,我是woody,是一名料理創作者,非常努力地在嘗試將複雜的料理簡單化,讓大家也可以體驗到料理的樂趣而我也非常享受料理的過程,今天想跟大家聊聊,除了料理本身,料理創作背後的成本。
Thumbnail
哈囉~很久沒跟各位自我介紹一下了~ 大家好~我是爺恩 我是一名圖文插畫家,有追蹤我一段時間的應該有發現爺恩這個品牌經營了好像.....快五年了(汗)時間過得真快!隨著時間過去,創作這件事好像變得更忙碌了,也很開心跟很多厲害的創作者以及廠商互相合作幫忙,還有最重要的是大家的支持與陪伴🥹。  
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
這篇內容,將會講解什麼是陣列,以及與陣列相關的知識。包括陣列的簡介、陣列的資料限制、陣列的維度、一維陣列、二維陣列。
Thumbnail
題目敘述 Make Two Arrays Equal by Reversing Subarrays 題目給定兩個輸入陣列,請問能否透過子陣列的反轉讓兩個陣列相等? 子陣列的反轉操作次數不受限制。 如果可以,返回True 如果不行,返回False
Thumbnail
Array可以說是各種語言除了基本型別之外,最常用的資料型別與容器之一了。 Array 這種連續格子狀的資料結構,在Python要怎麼表達呢? 建立一個空的陣列 最簡單也最直接的寫法就是 array = [] # Python list [] 就對應到大家熟知的array 陣列型態的資料結
※ 好用的陣列迭代器:forEach forEach 的使用時機: 需要從頭到尾把陣列中的每一個元素都印出來 ,就適合使用 forEach 方法。 forEach 的必要參數是一個函式: forEach() 的功能是把陣列的每個元素都丟進某個函式執行一次,因此必要的參數是一個函式。 語法:
Thumbnail
分享在網路上看到的陣列題目。通常 for...of 的 value 是陣列中的每個值,那如果我們在迭代中對陣列操作會發生什麼事? 題目來源:https://x.com/_jayphelps/status/1774640511158022335?s=20
Thumbnail
題目敘述 題目會給定我們一條鏈結串列Linked list的起始節點,要求我們刪除Linked List正中央的節點。 註: 正中央的節點,題目定義為索引為floor( 串列長度 / 2 ) 的節點,索引從零(Head Node)出發開始數。 例如 1 -> 2 -> 3 -> 4 鏈結
Thumbnail
題目敘述 題目會給定我們兩個整數陣列作為輸入nums1, nums2,要求我們找出兩個陣列的差異值。 找出在nums1但是不在nums2的元素,以陣列的形式放在answer[0]輸出。 找出在nums2但是不在nums1的元素,以陣列的形式放在answer[1]輸出。 題目的原文敘述
Thumbnail
題目敘述 題目會給定我們一個整數陣列nums,要求我們把裡面的0做元素交換,把0都搬到陣列的右邊。題目要求必須in-place在原本的陣列裡面做操作,不可以額外建立新的陣列。 題目的原文敘述 測試範例 Example 1: Input: nums = [0,1,0,3,12] Outpu
Thumbnail
題目敘述 題目給定我們一個輸入陣列nums 要求我們以正、負交叉排列的方式重組陣列,並且必須保持原本的相對順序。 並且以陣列的形式輸出返回答案。 例[5, 1, -2, -3] 重排後為 [5, -2, 1, -3] 題目的原文敘述 測試範例 Example 1: Input:
Thumbnail
題目敘述 題目會給我們一個整數陣列,裡面包含各種正整數,每回合可以消去兩個相同的數字,或者消去三個相同的數字。問最少需要幾次消去,才能讓陣列為空? 如果無解,則返回-1 詳細的題目可在這裡看到 測試範例 Example 1: Input: nums = [2,3,3,2,2,4,2,3,