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

C#でSortedListを反復処理する列挙子(Enumerator)を取得する方法


C#のSortedListコレクションを反復処理するための列挙子(Enumerator)を取得するには、GetEnumerator()メソッドを使用します。このメソッドは、キーと値のペアを順番に読み取るためのIDictionaryEnumeratorオブジェクトを返します。

SortedListと列挙子の基本

SortedListは、キーに基づいて自動的にソートされるキーと値のコレクションです。GetEnumerator()メソッドで取得した列挙子に対してMoveNext()メソッドを呼び出すことで次の要素へ移動し、KeyプロパティとValueプロパティを使って現在の要素にアクセスできます。

例1

using System;
using System.Collections;
public class Demo {
   public static void Main(String[] args){
      SortedList sortedList = new SortedList();
      sortedList.Add("A", "1");
      sortedList.Add("B", "2");
      sortedList.Add("C", "3");
      sortedList.Add("D", "4");
      sortedList.Add("E", "5");
      sortedList.Add("F", "6");
      sortedList.Add("G", "7");
      sortedList.Add("H", "8");
      sortedList.Add("I", "9");
      sortedList.Add("J", "10");
      Console.WriteLine("SortedList elements...");
      foreach(DictionaryEntry d in sortedList){
         Console.WriteLine("Key = "+d.Key + ", Value = " + d.Value);
      }
      Console.WriteLine("Count of SortedList key-value pairs = "+sortedList.Count);
      Console.WriteLine("\nEnumerator to iterate through the SortedList...");
      IDictionaryEnumerator demoEnum = sortedList.GetEnumerator();
      while (demoEnum.MoveNext())
         Console.WriteLine("Key = " + demoEnum.Key + ", Value = " + demoEnum.Value);
   }
}

出力

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

SortedList elements...
Key = A, Value = 1
Key = B, Value = 2
Key = C, Value = 3
Key = D, Value = 4
Key = E, Value = 5
Key = F, Value = 6
Key = G, Value = 7
Key = H, Value = 8
Key = I, Value = 9
Key = J, Value = 10
Count of SortedList key-value pairs = 10

Enumerator to iterate through the SortedList...
Key = A, Value = 1
Key = B, Value = 2
Key = C, Value = 3
Key = D, Value = 4
Key = E, Value = 5
Key = F, Value = 6
Key = G, Value = 7
Key = H, Value = 8
Key = I, Value = 9
Key = J, Value = 10

例2

続いて、別の例を見てみましょう −

using System;
using System.Collections;
public class Demo {
   public static void Main(String[] args){
      SortedList sortedList = new SortedList();
      sortedList.Add("One", "1");
      sortedList.Add("Two", "2");
      sortedList.Add("Three", "3");
      sortedList.Add("Four", "4");
      sortedList.Add("Five", "5");
      sortedList.Add("Six", "6");
      sortedList.Add("Seven", "7");
      sortedList.Add("Eight", "8");
      sortedList.Add("Nine", "9");
      sortedList.Add("Ten", "10");
      Console.WriteLine("Enumerator to iterate through the SortedList...");
      IDictionaryEnumerator demoEnum = sortedList.GetEnumerator();
      while (demoEnum.MoveNext())
         Console.WriteLine("Key = " + demoEnum.Key + ", Value = " + demoEnum.Value);
   }
}

出力

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

Enumerator to iterate through the SortedList...
Key = Eight, Value = 8
Key = Five, Value = 5
Key = Four, Value = 4
Key = Nine, Value = 9
Key = One, Value = 1
Key = Seven, Value = 7
Key = Six, Value = 6
Key = Ten, Value = 10
Key = Three, Value = 3
Key = Two, Value = 2

ポイントのまとめ

  • GetEnumerator()メソッドを呼び出すことで、SortedListを反復処理する列挙子を取得できます。
  • 戻り値はIDictionaryEnumerator型であり、Key・Value・Entryの各プロパティが利用可能です。
  • 要素へのアクセスはMoveNext()メソッドで順次進めます。最初の呼び出しで最初の要素に位置付けられます。
  • 例2の出力のように、SortedListは追加順ではなくキーのアルファベット順で要素を保持することに注意してください。

  1. C#でStringCollectionを反復処理する列挙子(Enumerator)を取得する方法

    StringCollectionを反復処理するための列挙子(Enumerator)を取得するには、GetEnumerator()メソッドを使用します。このメソッドはStringEnumerator型のオブジェクトを返し、MoveNext()とCurrentを組み合わせることで、コレクション内の各要素に順番にアクセスできます。基本的な使い方まずは、配列の要素をStringCollectionに追加し、列挙子を使って反復処理する例を見てみましょう。using System; using System.Collections.Specialized; public class Demo { &nbs

  2. C#でドライブのフォーマット形式(NTFS/FAT32)を取得する方法

    C#では、DriveInfoクラスが持つDriveFormatプロパティを使うことで、ドライブのフォーマット形式を簡単に取得できます。Windowsシステムにおけるドライブ形式は、主に「NTFS」や「FAT32」などです。ドライブの指定方法まず、形式を表示したいドライブを指定してDriveInfoオブジェクトを作成します。以下の例ではCドライブを指定しています。DriveInfo dInfo = new DriveInfo(C);DriveFormatプロパティで形式を取得次に、DriveFormatプロパティを参照することで、指定したドライブのフォーマット形式を取得できます。dInfo.Dr