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

C#でArrayList内の指定範囲の要素に対する列挙子を取得する方法

C#のArrayListで、特定の範囲の要素だけを順番に処理したい場合には、GetEnumerator(int index, int count)メソッドを使用します。このメソッドは、開始インデックスと取得する要素数を指定することで、その範囲に対応するIEnumerator(列挙子)を返します。

GetEnumeratorメソッドの基本構文

public virtual System.Collections.IEnumerator GetEnumerator(int index, int count);
  • index:列挙を開始する位置(0から始まるインデックス)
  • count:列挙する要素の数

サンプルコード1:数値のArrayListの場合

以下の例では、100〜500の5つの整数を持つArrayListから、インデックス1から3個分の要素(200、300、400)を列挙しています。

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("範囲内の要素を表示...");
      IEnumerator demoEnum = arrList.GetEnumerator(1, 3);

      while (demoEnum.MoveNext()) {
         Object ob = demoEnum.Current;
         Console.WriteLine(ob);
      }
   }
}

実行結果

範囲内の要素を表示...
200
300
400

サンプルコード2:文字列のArrayListの場合

次に、文字列を格納したArrayListでの例を見てみましょう。同じリストに対して、異なる範囲を2回列挙しています。

using System;
using System.Collections;

public class Demo {
   public static void Main() {
      ArrayList arrList = new ArrayList();
      arrList.Add("Andy");
      arrList.Add("Katie");
      arrList.Add("Taylor");
      arrList.Add("Steve");
      arrList.Add("Nathan");
      arrList.Add("Carl");
      arrList.Add("Mark");
      arrList.Add("Amy");
      arrList.Add("Jacob");
      arrList.Add("John");

      Console.WriteLine("範囲内の要素を表示...");
      IEnumerator demoEnum = arrList.GetEnumerator(1, 3);

      while (demoEnum.MoveNext()) {
         Object ob = demoEnum.Current;
         Console.WriteLine(ob);
      }

      Console.WriteLine("別の範囲の要素を表示...");
      demoEnum = arrList.GetEnumerator(3, 5);

      while (demoEnum.MoveNext()) {
         Object ob = demoEnum.Current;
         Console.WriteLine(ob);
      }
   }
}

実行結果

範囲内の要素を表示...
Katie
Taylor
Steve
別の範囲の要素を表示...
Steve
Nathan
Carl
Mark
Amy

ポイントまとめ

  • GetEnumerator(index, count)は、index番目の要素からcount個分の要素を対象とする列挙子を返します。
  • MoveNext()メソッドで次の要素へ移動し、Currentプロパティで現在の要素を取得します。
  • 範囲外のインデックスや負の値を指定すると、ArgumentOutOfRangeExceptionがスローされるため注意が必要です。
  1. C#のArrayListクラスにおけるCountプロパティの使い方を解説

    C#のArrayListクラスには、リストに格納されている要素の数を取得するためのCountプロパティが用意されています。このプロパティを使うことで、ArrayList内の現在の要素数を簡単に確認できます。ArrayListへの要素の追加まず、Addメソッドを使ってArrayListに要素を追加します。ArrayList arrList = new ArrayList(); arrList.Add(98); arrList.Add(55); arrList.Add(65); arrList.Add(34);上記のコードでは、4つの整数値(98、55、65、34)をArrayListに追加して

  2. JavaでArrayListのすべての要素を削除する方法(clearメソッドの使い方)

    JavaのArrayListからすべての要素を一括で削除したい場合は、clear()メソッドを使用します。この記事では、実際のコード例を通じて、ArrayListの全要素を削除する手順をわかりやすく解説します。1. 要素を持つArrayListを作成するまず、複数の要素を格納したArrayListを用意しましょう。以下の例では、Integer型のArrayListに7つの数値を追加しています。ArrayList<Integer> arrlist = new ArrayList<Integer>(5); arrlist.add(25); arrlist.add(50);