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

C#のListからすべての要素を削除する方法|Clear()メソッドの使い方を解説

C#の List<T> からすべての要素をまとめて削除したい場合は、Clear() メソッドを使用します。Clear() を呼び出すと、リスト内の全要素が削除され、Count プロパティの値は 0 になります。この記事では、具体的なコード例と実行結果をもとに、その使い方をわかりやすく解説します。

コード例:Clear() でリストの全要素を削除する

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.Clear();
      Console.WriteLine("\nlist2 の要素数(更新後) = "+list2.Count);
   }
}

出力結果

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

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

Clear() メソッドのポイント

  • 全要素の削除: リスト内のすべての要素が削除され、Count は 0 になります。
  • 戻り値なし: 戻り値は void で、メソッドを呼び出すだけでリストが空になります。
  • Capacity は維持される: 内部配列の容量(Capacity)は変化しないため、リストを再利用する際の再確保コストを抑えられます。
  • 計算量は O(n): 各要素が既定値に設定されるため、要素数に比例した処理時間がかかります。

別のコード例:シンプルなリストでの確認

続いて、もう少しシンプルな例を見てみましょう。

using System;
using System.Collections.Generic;

public class Demo {
   public static void Main(String[] args) {
      List<String> list = new List<String>();
      list.Add("One");
      list.Add("Two");
      list.Add("Three");
      list.Add("Four");
      list.Add("Five");
      Console.WriteLine("List の要素...");
      foreach (string res in list) {
         Console.WriteLine(res);
      }
      Console.WriteLine("\nlist の要素数 = "+list.Count);
      list.Clear();
      Console.WriteLine("\nlist の要素数(更新後) = "+list.Count);
   }
}

出力結果

このコードを実行すると、次の出力が得られます。

List の要素...
One
Two
Three
Four
Five
list の要素数 = 5
list の要素数(更新後) = 0

補足:メモリ容量を解放したい場合

Clear() を呼び出しても Capacity は減少しません。大量の要素を扱った後にメモリを解放したい場合は、TrimExcess() メソッドを呼び出して未使用の容量を縮小するか、状況に応じて新しいリストインスタンスを作り直すとよいでしょう。

まとめ

C#のリストからすべての要素を削除するには、Clear() メソッドを使うのが最も簡単です。1 行呼び出すだけで Count が 0 になり、リストを初期状態に戻せます。なお、特定の条件に一致する要素だけを削除したい場合は、RemoveAll() メソッドを活用してください。

  1. 【C#】2つのリストの共通要素をすべて出力するプログラムの書き方

    C#では、LINQのIntersectメソッドを使うことで、2つのリストに共通する要素を簡単に抽出できます。この記事では、2つの整数型リストから共通要素を取得し、コンソールに出力するプログラムの作成手順を解説します。 1. 2つのリストを作成する まず、比較対象となる2つのリストを用意します。 List<int> list1 = new List<int>() {40, 20, 60, 3, 55}; List<int> list2 = new List<int>() {20, 70, 55, 80}; 2. Intersectメソッドで共通要素

  2. Pythonでリストから交互の要素を抽出する2つの方法

    この記事では、Pythonのリストから交互の要素(隔要素)を取得する方法を学びます。問題を解決するための2つの異なるアプローチを、コード例とともにわかりやすく解説します。方法1:リスト内包表記を使うまず、リスト内包表記を使った方法を紹介します。以下の手順で実装できます。リストを初期化する。リストを反復処理し、奇数インデックスにあるすべての要素を格納する。結果を出力する。コード例実際のコードを見てみましょう。# リストを初期化 numbers = [1, 2, 3, 4, 5] # 交互の要素を取得 result = [numbers[i] for i in range(len(numbers