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

C#のStringCollectionで指定したインデックスに要素を挿入する方法

C#のStringCollectionクラスには、指定したインデックス位置に文字列を挿入するためのInsert()メソッドが用意されています。このメソッドは第1引数に挿入位置(インデックス)、第2引数に挿入する文字列を指定します。

Insert()メソッドの基本構文

public void Insert (int index, string value);
  • index:要素を挿入する位置(0から始まるインデックス)
  • value:挿入する文字列

例1:基本的な使い方

以下のコードでは、3つの要素を持つStringCollectionを作成し、インデックス2の位置に「Headphone」を挿入しています。

using System;
using System.Collections.Specialized;
public class Demo {
   public static void Main(){
      StringCollection strCol = new StringCollection();
      strCol.Add("Accessories");
      strCol.Add("Books");
      strCol.Add("Electronics");
      Console.WriteLine("StringCollection elements...");
      foreach (string res in strCol){
         Console.WriteLine(res);
      }
      strCol.Insert(2, "Headphone");
      Console.WriteLine("StringCollection elements...UPDATED");
      foreach (string res in strCol){
         Console.WriteLine(res);
      }
   }
}

出力結果

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

StringCollection elements...
Accessories
Books
Electronics
StringCollection elements...UPDATED
Accessories
Books
Headphone
Electronics

出力を見ると、「Electronics」の前に「Headphone」が挿入され、既存の要素は後ろにずれていることがわかります。これがInsert()メソッドの特徴です。Add()メソッドと異なり、コレクションの末尾ではなく任意の位置に要素を追加できます。

例2:複数回の挿入

次に、複数の要素を連続して挿入する例を見てみましょう。

using System;
using System.Collections.Specialized;
public class Demo {
   public static void Main(){
      StringCollection strCol = new StringCollection();
      strCol.Add("Laptop");
      strCol.Add("Desktop");
      strCol.Add("Tablet");
      strCol.Add("Speakers");
      Console.WriteLine("StringCollection elements...");
      foreach (string res in strCol){
         Console.WriteLine(res);
      }
      strCol.Insert(2, "Headphone");
      strCol.Insert(3, "Alienware");
      Console.WriteLine("StringCollection elements...UPDATED");
      foreach (string res in strCol){
         Console.WriteLine(res);
      }
      strCol.Insert(4, "E-Book Reader");
      strCol.Insert(5, "Monitor");
      strCol.Insert(6, "HDD");
      strCol.Insert(7, "SSD");
      Console.WriteLine("StringCollection elements...UPDATED");
      foreach (string res in strCol){
         Console.WriteLine(res);
      }
   }
}

出力結果

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

StringCollection elements...
Laptop
Desktop
Tablet
Speakers
StringCollection elements...UPDATED
Laptop
Desktop
Headphone
Alienware
Tablet
Speakers
StringCollection elements...UPDATED
Laptop
Desktop
Headphone
Alienware
E-Book Reader
Monitor
HDD
SSD
Tablet
Speakers

注意点

  • Insert()メソッドを使用する際は、System.Collections.Specialized名前空間をusingディレクティブで追加する必要があります。
  • 指定できるインデックスの範囲は0からCountまでです。範囲外のインデックスを指定するとArgumentOutOfRangeExceptionがスローされます。
  • null値を挿入することも可能ですが、その場合はコレクション内にnull要素が含まれることになります。

このように、StringCollectionのInsert()メソッドを使えば、文字列コレクションの任意の位置に柔軟に要素を挿入することができます。順序が重要なデータを扱う場合に非常に便利なメソッドなので、ぜひ活用してみてください。

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

    C#のStringCollectionから、指定したインデックス位置にある要素を削除するには、RemoveAtメソッドを使用します。このメソッドは、引数として渡されたインデックス番号に対応する要素をコレクションから取り除き、残りの要素の数も自動的に減少させます。それでは、実際のコード例を見ていきましょう。例1:単一の要素を削除するusing System; using System.Collections.Specialized; public class Demo {    public static void Main() {   &nbs

  2. C#のSortedListで指定したインデックスの要素を削除する方法(RemoveAtメソッド)

    C#のSortedListコレクションから、指定されたインデックス位置にある要素を削除するには、RemoveAt()メソッドを使用します。この記事では、RemoveAtメソッドの基本的な使い方を、実際のコード例と実行結果とともにわかりやすく解説します。RemoveAt()メソッドとはRemoveAt(int index)は、SortedList内の指定されたインデックス(0から始まる番号)にあるキーと値のペアを削除するメソッドです。削除後は、後続の要素が自動的に前に詰められ、Countプロパティの値も1つ減少します。サンプルコード1:単一の要素を削除するまずは、SortedListに複数の要素