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

C#でStringCollectionの指定したインデックスから要素を削除する方法

C#のStringCollectionから、指定したインデックス位置にある要素を削除するには、RemoveAtメソッドを使用します。このメソッドは、引数として渡されたインデックス番号に対応する要素をコレクションから取り除き、残りの要素の数も自動的に減少させます。

それでは、実際のコード例を見ていきましょう。

例1:単一の要素を削除する

using System;
using System.Collections.Specialized;
public class Demo {
   public static void Main() {
      StringCollection stringCol = new StringCollection();
      String[] arr = new String[] { "100", "200", "300", "400", "500" };
      Console.WriteLine("配列の要素...");
      foreach (string res in arr) {
         Console.WriteLine(res);
      }
      stringCol.AddRange(arr);
      Console.WriteLine("要素の総数 = "+stringCol.Count);
      stringCol.RemoveAt(3);
      Console.WriteLine("削除後の要素の総数 = "+stringCol.Count);
   }
}

出力結果

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

配列の要素...
100
200
300
400
500
要素の総数 = 5
削除後の要素の総数 = 4

この例では、RemoveAt(3)によってインデックス3(4番目)の「400」が削除され、要素数が5から4に減っていることが確認できます。

例2:複数の要素を連続して削除する

続いて、複数の要素を順番に削除する別の例を見てみましょう。

using System;
using System.Collections.Specialized;
public class Demo {
   public static void Main() {
      StringCollection stringCol = new StringCollection();
      String[] arr = new String[] { "A", "B", "C", "D", "E" };
      Console.WriteLine("配列の要素...");
      foreach (string res in arr) {
         Console.WriteLine(res);
      }
      stringCol.AddRange(arr);
      Console.WriteLine("要素の総数 = "+stringCol.Count);
      stringCol.RemoveAt(1);
      stringCol.RemoveAt(2);
      Console.WriteLine("削除後の要素の総数 = "+stringCol.Count);
   }
}

出力結果

このコードを実行すると、以下の出力が生成されます。

配列の要素...
A
B
C
D
E
要素の総数 = 5
削除後の要素の総数 = 3

この例では、まずRemoveAt(1)で「B」が削除され、その後RemoveAt(2)で(要素が前に詰められた結果としてインデックス2となった)「D」が削除されます。最終的に要素数は5から3に減少します。

ポイントまとめ

  • RemoveAt(int index)は、指定したインデックスの要素をStringCollectionから削除します。
  • インデックスは0から始まるため、先頭の要素はRemoveAt(0)で削除できます。
  • 範囲外のインデックスを指定するとArgumentOutOfRangeExceptionがスローされるため注意が必要です。
  • 要素を削除すると、後ろの要素は自動的に前方へシフトされます。
  1. 【C#】ArrayListからRemoveRangeメソッドで要素の範囲を一括削除する方法

    C#のArrayListから連続する複数の要素を一度に削除したい場合は、RemoveRangeメソッドを使用します。このメソッドには「削除を開始するインデックス」と「削除する要素数」の2つの引数を渡すだけで、指定範囲の要素をまとめて削除できます。 RemoveRangeメソッドの構文 public virtual void RemoveRange(int index, int count); index … 削除範囲の開始位置を示す、0から始まるインデックス count … 削除する要素の個数 例えば list.RemoveRange(3, 2) と呼び出すと、インデックス3の要素から2

  2. C#のArrayListからすべての要素を削除する方法

    C#のArrayListからすべての要素を削除するには、Clear()メソッドを使用します。Clear()メソッドを呼び出すと、コレクション内の全要素が削除され、要素数(Count)は0になります。 例1:ArrayListの全要素を削除する using System; using System.Collections; public class Demo { public static void Main(String[] args){ ArrayList list1 = new ArrayList(); list1.Add(A);