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

【C#】Collectionの指定したインデックスに要素を挿入する方法(Insertメソッド)

C#でCollection<T>の指定されたインデックス位置に要素を挿入するには、Insertメソッドを使用します。このメソッドは、第1引数に挿入位置(0から始まるインデックス)、第2引数に挿入したい要素を指定します。挿入後は、それ以降の既存要素が自動的に後ろへシフトされます。

例1:文字列のコレクションに要素を挿入する

using System;
using System.Collections.ObjectModel;

public class Demo {
   public static void Main() {
      Collection<string> col = new Collection<string>();
      col.Add("Laptop");
      col.Add("Desktop");
      col.Add("Notebook");
      col.Add("Ultrabook");
      col.Add("Tablet");
      col.Add("Headphone");
      col.Add("Speaker");

      Console.WriteLine("Elements in Collection...");
      foreach(string str in col) {
         Console.WriteLine(str);
      }

      Console.WriteLine("Element at index 3 = " + col[3]);
      Console.WriteLine("Element at index 4 = " + col[4]);

      // インデックス5の位置に「Alienware」を挿入
      col.Insert(5, "Alienware");

      Console.WriteLine("Elements in Collection...UPDATED");
      foreach(string str in col) {
         Console.WriteLine(str);
      }
  }
}

出力結果

上記のコードを実行すると、次のような出力が得られます。インデックス5の位置に「Alienware」が挿入され、元々そこにあった「Headphone」以降の要素が後ろへずれているのが分かります。

Elements in Collection...
Laptop
Desktop
Notebook
Ultrabook
Tablet
Headphone
Speaker
Element at index 3 = Ultrabook
Element at index 4 = Tablet
Elements in Collection...UPDATED
Laptop
Desktop
Notebook
Ultrabook
Tablet
Alienware
Headphone
Speaker

例2:別のパターンでの挿入

続いて、もう一つの例を見てみましょう。ここでは、8つの名前を持つコレクションのインデックス3の位置に、新しい要素「Jacob」を挿入しています。

using System;
using System.Collections.ObjectModel;

public class Demo {
   public static void Main() {
      Collection<string> col = new Collection<string>();
      col.Add("Andy");
      col.Add("Kevin");
      col.Add("John");
      col.Add("Kevin");
      col.Add("Mary");
      col.Add("Katie");
      col.Add("Barry");
      col.Add("Nathan");

      Console.WriteLine("Elements in Collection...");
      foreach(string str in col) {
         Console.WriteLine(str);
      }

      // インデックス3の位置に「Jacob」を挿入
      col.Insert(3, "Jacob");

      Console.WriteLine("Elements in Collection...UPDATED");
      foreach(string str in col) {
         Console.WriteLine(str);
      }
  }
}

出力結果

実行すると、以下の出力が表示されます。「John」と「Kevin」の間(インデックス3)に「Jacob」が挿入され、以降の要素が一つずつ後ろに移動していることが確認できます。

Elements in Collection...
Andy
Kevin
John
Kevin
Mary
Katie
Barry
Nathan
Elements in Collection...UPDATED
Andy
Kevin
John
Jacob
Kevin
Mary
Katie
Barry
Nathan

ポイントまとめ

  • Insert(int index, T item):指定したインデックスの位置に要素を挿入します。
  • 挿入位置以降の既存要素は自動的に後ろへシフトされ、コレクションの要素数(Count)は1増加します。
  • 有効範囲外のインデックス(0未満やCountより大きい値)を指定すると、ArgumentOutOfRangeExceptionがスローされるため注意が必要です。
  • 末尾への追加だけであれば、よりシンプルにAddメソッドを使用できます。
  1. C#でHashSetと指定されたコレクションに共通の要素があるか確認する方法

    C#において、HashSetと指定されたコレクションとの間に共通の要素が存在するかどうかを確認したい場合は、Overlaps() メソッドを使用します。Overlaps() メソッドは、HashSetと引数で渡されたコレクションの間に共通する要素が1つでも存在すれば true を返し、まったく存在しなければ false を返します。このメソッドは System.Collections.Generic 名前空間に含まれており、引数として IEnumerable<T> 型のコレクションを受け取ります。例1:int型のHashSetの場合まずは、整数値を格納した2つのHashSetで共通

  2. 【C#入門】Insertメソッドでリストの指定したインデックス位置に要素を追加する方法

    はじめに C#のList<T>では、Add()メソッドを使うと要素は常にリストの末尾に追加されます。しかし、リストの途中の特定の位置(インデックス)に要素を挿入したい場合もあります。そのようなときに活用できるのが、Insert()メソッドです。 この記事では、Insert()メソッドを使って、指定したインデックス位置に要素を挿入する方法をサンプルコードとともに解説します。 Insert()メソッドの基本構文 Insert()メソッドは、第1引数に挿入位置となるインデックス番号、第2引数に挿入する要素を指定します。 list.Insert(インデックス, 挿入する要素); なお、C