[筆記] 刪除 Array 陣列中指定的元素

[筆記] 刪除 Array 陣列中指定的元素

 

前言

此文章紀錄如何移除 Array 陣列中指定的元素!

想要移除 Array 陣列中某項特定的元素,但發現因 Array 類別中,沒有類似 Remove 的方法可使用 XD

如下圖所示:

Array

查了一下Array 成員,發現公用方法中並沒有 Remove 方法,但在.NET Framework 2.0 中 Array 類別有實做 IListICollectionIEnumerable 泛型介面

 

使用 LINQ


int[] myNumbers = { 1, 30, 26, 53, 97, };

int myRemoveNum = 53;

myNumbers = myNumbers.Where(val => val != myRemoveNum).ToArray();

.NET Framework 3.5

namespace:System.Linq

透過 Enumerable.Where<TSource>方法,找出輸入資料符合條件的項目。

 

不使用 LINQ


int[] myNumbers = { 1, 30, 26, 53, 97, };

int myRemoveNum = 53;

myNumbers = Array.FindAll(myNumbers, val => val != myRemoveNum).ToArray();

.NET Framework 2.0

透過 Array.FindAll 泛型方法取得符合條件的所有元素。

 

以上情況都是假設元素是不重複的情況下使用,但如果陣列中有可能元素重複的話

可以透過 Array.IndexOf 方法找到第一個符合項目的資料,詳細可以參考 這裡

 

參考

How to delete an element from an array in C#

Array 成員

Enumerable.Where<TSource>

Array.FindAll