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

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

C#のArrayListクラスでは、Insertメソッドを使用することで、指定したインデックスの位置に新しい要素を挿入できます。挿入位置以降の既存要素は自動的に後ろへシフトされるため、リスト全体の順序が保たれます。以下に具体的なコード例を示します。

例1:文字列要素を挿入する

using System;
using System.Collections;
public class Demo {
    public static void Main() {
        ArrayList list = new ArrayList();
        list.Add("One");
        list.Add("Two");
        list.Add("Three");
        list.Add("Four");
        list.Add("Five");
        list.Add("Six");
        list.Add("Seven");
        list.Add("Eight");
        Console.WriteLine("ArrayList elements...");
        foreach(string str in list) {
            Console.WriteLine(str);
        }
        Console.WriteLine("ArrayList is read-only? = "+list.IsReadOnly);
        Console.WriteLine("Does the element Six in the ArrayList? = "+list.Contains("Six"));
        list.Insert(4, "Twelve");
        Console.WriteLine("ArrayList elements...UPDATED");
        foreach(string str in list) {
            Console.WriteLine(str);
        }
    }
}

出力

このプログラムを実行すると、次のような出力が得られます。

ArrayList elements...
One
Two
Three
Four
Five
Six
Seven
Eight
ArrayList is read-only? = False
Does the element Six in the ArrayList? = True
ArrayList elements...UPDATED
One
Two
Three
Four
Twelve
Five
Six
Seven
Eight

上記の例では、list.Insert(4, "Twelve")によって、インデックス4(5番目)の位置に「Twelve」が挿入されています。その結果、元々インデックス4にあった「Five」以降の要素が一つずつ後ろへ移動していることが確認できます。また、IsReadOnlyプロパティがFalseであるためリストは書き込み可能であり、Containsメソッドにより「Six」がリスト内に存在することも判定できています。

例2:数値要素を挿入する

続いて、IEnumeratorを使って要素を順番に表示しながら、数値を挿入する例を見てみましょう。

using System;
using System.Collections;
public class Demo {
    public static void Main() {
        ArrayList arrList = new ArrayList();
        arrList.Add(100);
        arrList.Add(200);
        arrList.Add(300);
        arrList.Add(400);
        arrList.Add(500);
        Console.WriteLine("Display elements...");
        IEnumerator demoEnum = arrList.GetEnumerator();
        while (demoEnum.MoveNext()) {
            Object ob = demoEnum.Current;
            Console.WriteLine(ob);
        }
        arrList.Insert(4, 1000);
        Console.WriteLine("Display elements...UPDATED");
        demoEnum = arrList.GetEnumerator();
        while (demoEnum.MoveNext()) {
            Object ob = demoEnum.Current;
            Console.WriteLine(ob);
        }
    }
}

出力

このプログラムを実行すると、次のような出力が得られます。

Display elements...
100
200
300
400
500
Display elements...UPDATED
100
200
300
400
1000
500

ポイントまとめ

  • Insert(int index, object value)メソッドを使うと、指定したインデックスの位置に要素を挿入できます。
  • 挿入後は、その位置以降の既存要素が自動的に後ろへシフトされます。
  • IsReadOnlyプロパティでリストが読み取り専用かどうかを事前に確認でき、読み取り専用の場合は挿入操作で例外が発生します。
  • Containsメソッドを使えば、特定の要素がリスト内に存在するかどうかを簡単に判定できます。
  1. C#でリスト内の要素のインデックスを検索する方法

    C#のList内から特定の要素がどの位置(インデックス)にあるかを調べたい場合、IndexOf()メソッドを使用します。この記事では、基本的な使い方をサンプルコードとともに解説します。 リストの作成と要素の追加 まず、Listを作成して整数の要素を追加します。 List<int> val = new List<int>(); // 整数の要素を追加 val.Add(35); val.Add(55); val.Add(68); この時点で、リストには「35」「55」「68」の3つの要素が格納されています。それぞれのインデックスは先頭から順に「0」「1」「2」となります。

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

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