C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のListから指定した要素を削除する方法(Removeメソッドの使い方)

C#のList<T>から特定の要素を削除したい場合は、Remove()メソッドを使用します。このメソッドは、引数に指定した値と一致する最初の要素をリストから取り除き、削除に成功した場合はtrue、該当する要素が存在しない場合はfalseを返します。

ここでは、文字列型と整数型のリストを例に、Remove()メソッドの基本的な使い方を解説します。

サンプルコード1:文字列のListから要素を削除する

まずは、文字列を格納した2つのリストを用意し、そのうち片方から「US」という要素を削除する例を見てみましょう。

using System;
using System.Collections.Generic;
public class Demo {
   public static void Main(String[] args) {
      List<String> list1 = new List<String>();
      list1.Add("One");
      list1.Add("Two");
      list1.Add("Three");
      list1.Add("Four");
      list1.Add("Five");
      Console.WriteLine("List1の要素...");
      foreach (string res in list1) {
         Console.WriteLine(res);
      }
      List<String> list2 = new List<String>();
      list2.Add("India");
      list2.Add("US");
      list2.Add("UK");
      list2.Add("Canada");
      list2.Add("Poland");
      list2.Add("Netherlands");
      Console.WriteLine("List2の要素...");
      foreach (string res in list2) {
         Console.WriteLine(res);
      }
      Console.WriteLine("\nList2はList1と等しいか? = " + list2.Equals(list1));
      Console.WriteLine("\nList2の要素数 = " + list2.Count);
      list2.Remove("US");
      Console.WriteLine("\nList2の要素数(更新後) = " + list2.Count);
      Console.WriteLine("List2の要素... 更新後");
      foreach (string res in list2) {
         Console.WriteLine(res);
      }
   }
}

実行結果

上記のコードを実行すると、次のような出力が得られます。

List1の要素...
One
Two
Three
Four
Five
List2の要素...
India
US
UK
Canada
Poland
Netherlands
List2はList1と等しいか? = False
List2の要素数 = 6
List2の要素数(更新後) = 5
List2の要素... 更新後
India
UK
Canada
Poland
Netherlands

このように、list2.Remove("US")を実行することで、「US」がリストから削除され、要素数も6から5に変化していることが確認できます。

サンプルコード2:数値のListから要素を削除する

続いて、整数型のリストから特定の値を削除する例です。Remove()メソッドは文字列だけでなく、任意の型に対して使用できます。

using System;
using System.Collections.Generic;
public class Demo {
   public static void Main(String[] args) {
      List<int> list = new List<int>();
      list.Add(5);
      list.Add(10);
      list.Add(20);
      list.Add(50);
      list.Add(75);
      list.Add(100);
      Console.WriteLine("Listの要素...");
      foreach (int res in list) {
         Console.WriteLine(res);
      }
      Console.WriteLine("\nListの要素数 = " + list.Count);
      list.Remove(50);
      Console.WriteLine("\nListの要素数(更新後) = " + list.Count);
      Console.WriteLine("Listの要素... 更新後");
      foreach (int res in list) {
         Console.WriteLine(res);
      }
   }
}

実行結果

上記のコードを実行すると、次のような出力が得られます。

Listの要素...
5
10
20
50
75
100
Listの要素数 = 6
Listの要素数(更新後) = 5
Listの要素... 更新後
5
10
20
75
100

ポイントまとめ

  • Remove(T item)は、指定した値と一致する最初の要素のみを削除します。
  • 該当する要素が複数ある場合で全て削除したいときは、RemoveAll()メソッドを使用します。
  • インデックスを指定して削除したい場合は、RemoveAt(int index)メソッドを使います。
  • 削除対象の要素が存在しない場合、Remove()は例外をスローせず、単にfalseを返します。
  1. C#でリストから最小値と最大値を取得する方法

    C#でリスト(List)に格納された数値の中から、最小値と最大値を取得する方法を解説します。LINQのMin()メソッドとMax()メソッドを使えば、わずか1行のコードで簡単に求めることができます。リストの作成まず、処理対象となるリストを作成します。List<long> list = new List<long> { 150, 300, 400, 350, 450, 550, 600 };最小値を取得する:Min()メソッドリストの中で最も小さい要素を取得するには、Min()メソッドを使用します。list.AsQueryable().Min();最大値を取得する:Max

  2. C#でリストの最初の要素をポップ(削除)する方法

    C# のリスト(List<T>)から最初の要素をポップ(先頭から取り除く)したい場合は、RemoveAt() メソッドを使用します。このメソッドは、引数で指定したインデックス位置にある要素をリストから削除します。 先頭の要素を削除するには、インデックス 0 を指定して RemoveAt(0) を呼び出します。 リストを作成する まず、操作対象となるリストを用意します。 List<string> myList = new List<string>() { Operating System, Computer Networks, Comp