[C#]リスト(List)の特定の要素をまとめて削除するには?

C#

どうも、ちょげ(@chogetarou)です。

リスト(List)の特定の要素をまとめて削除する方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

リスト(List)の特定の要素をまとめて削除する方法は、2つあります。

RemoveAll()

1つは、RemoveAll()メソッドを使う方法です。

まず、リスト(List)からRemoveAll()メソッドを呼び出します。

そして、RemoveAll()の引数に条件式を返すラムダ式を指定します。

list.RemoveAll(item => 条件式);

上記のRemoveAll()は、ラムダ式で返す条件式でTrueとなる要素を、呼び出したリストから削除します。

RemoveAll()の引数のラムダ式は、引数でリストの要素を取得します。

使用例

using System;
using System.Collections.Generic;
public class Example
{
	public static void Main()
	{
		List<int> numbers = new List<int> { 1, 2, 3, 4, 5 , 6, 7, 8, 9, 10};
		
		numbers.RemoveAll(item => item % 2 == 0);
		
		Console.WriteLine(String.Join(",", numbers)); //1,3,5,7,9
 	}
}

Where()

もう1つは、Where()メソッドを使う方法です。

まず、System.Linqを導入します。

using System.Linq;

次に、リスト(List)からWhere()メソッドを呼び出します。

Where()の引数に、削除したい要素でFalseになる条件式を返すラムダ式を指定します。

そして、Where()からToList()を呼び出します。

//条件式は削除したい要素でFalseになるようにする
List<T> result = list.Where(item => 条件式).ToList();

上記のWhere().ToList()は、ラムダ式で返す条件式でFalseとなる要素を、呼び出したリストから削除した新しいリストを返します。

Where()の引数のラムダ式は、引数でリストの要素を取得します。

使用例

using System;
using System.Collections.Generic;
using System.Linq;
public class Example
{
	public static void Main()
	{
		List<int> numbers = new List<int> { 1, 2, 3, 4, 1 , 1, 1, 8, 1, 10};
		
		List<int> result = numbers.Where(item => item != 1).ToList();
		
		Console.WriteLine(String.Join(",", result)); //2,3,4,8,10
 	}
}

まとめ

リスト(List)の特定の要素をまとめて削除する方法は、次の2つです。

  • RemoveAll()を使う方法
  • Where()を使う方法

コメント

タイトルとURLをコピーしました