どうも、ちょげ(@chogetarou)です。
Linqを使って、配列(Array)から複数の要素をまとめて削除する方法を紹介します。
方法

Linqを使って、配列(array)から要素をまとめて削除する方法は、2つあります。
Where()
1つは、Where()を使う方法です。
まず、System.Linqを導入します。
using System.Linq;
次に、配列からWhere()メソッドを呼び出します。
Where()の引数に、削除したい要素でFalseになる条件式を返すラムダ式を指定します。
そして、Where()からToArray()を呼び出します。
//条件式は削除したい要素でFalseになるようにする
T[] result = array.Where(item => 条件式).ToArray();
上記のWhere().ToArray()は、ラムダ式で返す条件式でFalseとなる要素を、呼び出した配列(Array)から削除した新しい(Array)を返します。
使用例
using System;
using System.Linq;
public class Example
{
public static void Main()
{
int[] numbers = new int[10] { 1, 2, 1, 3, 1, 1, 4, 5, 1, 1};
int[] result = numbers.Where(item => item != 1).ToArray();
Console.WriteLine(String.Join(",", result)); //2,3,4,5
}
}
Except()
もう1つは、Except()を使う方法です。
まず、System.Linqを導入します。
using System.Linq;
次に、配列(Array)からExcept()を呼び出します。
Except()の引数に削除する要素をまとめた配列を指定します。
そして、Except()からToArray()を呼び出します。
T[] result = array.Except(new T[] { item1, item2, ・・・ }).ToArray();
上記のExcept().ToArray()は、引数に指定した配列が持っている要素を、呼び出した配列から削除した新しい配列を返します。
使用例
using System;
using System.Linq;
public class Example
{
public static void Main()
{
int[] numbers = new int[10] { 10, 2, 1, 3, 1, 10, 4, 5, 1, 10};
int[] result = numbers.Except(new int[] { 1, 10 }).ToArray();
Console.WriteLine(String.Join(",", result)); //2,3,4,5
}
}
まとめ
Linqを使って配列(Array)から複数の要素をまとめて削除する方法は、次の2つです。
- Where()を使う方法
- Except()を使う方法
コメント