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

C#でSortedDictionaryを反復処理する列挙子を取得する方法

C#のSortedDictionaryを反復処理する列挙子(Enumerator)を取得するには、GetEnumerator()メソッドを使用します。このメソッドは、コレクション内のキーと値のペアへ順番にアクセスするためのIDictionaryEnumeratorを返します。

SortedDictionaryは、キーに基づいて自動的にソートされた状態で要素を保持するコレクションです。そのため、列挙子による反復処理では、要素の追加順序に関係なく、必ずキーの昇順で各要素が取得されます。

例1

以下のコードでは、int型のキーとstring型の値を持つSortedDictionaryを作成し、GetEnumerator()メソッドで列挙子を取得して、すべてのキーと値のペアをコンソールに出力しています。

using System;
using System.Collections;
using System.Collections.Generic;

public class Demo {
   public static void Main(){
      SortedDictionary<int, string> sortedDict = new SortedDictionary<int, string>();
      sortedDict.Add(100, "Mobile");
      sortedDict.Add(200, "Laptop");
      sortedDict.Add(300, "Desktop");
      sortedDict.Add(400, "Speakers");
      sortedDict.Add(500, "Headphone");
      sortedDict.Add(600, "Earphone");

      Console.WriteLine("SortedDictionary key-value pairs...");
      IDictionaryEnumerator demoEnum = sortedDict.GetEnumerator();
      while (demoEnum.MoveNext())
         Console.WriteLine("Key = " + demoEnum.Key + ", Value = " + demoEnum.Value);
   }
}

出力

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

SortedDictionary key-value pairs...
Key = 100, Value = Mobile
Key = 200, Value = Laptop
Key = 300, Value = Desktop
Key = 400, Value = Speakers
Key = 500, Value = Headphone
Key = 600, Value = Earphone

例2

続いて、int型のキーとint型の値を持つSortedDictionaryの例を見てみましょう。こちらも同様に、 GetEnumerator()で列挙子を取得し、whileループとMoveNext()を使ってすべての要素を順番に処理しています。

using System;
using System.Collections;
using System.Collections.Generic;

public class Demo {
   public static void Main(){
      SortedDictionary<int, int> sortedDict = new SortedDictionary<int, int>();
      sortedDict.Add(100, 1);
      sortedDict.Add(200, 2);
      sortedDict.Add(300, 3);
      sortedDict.Add(400, 4);
      sortedDict.Add(500, 5);
      sortedDict.Add(600, 6);
      sortedDict.Add(700, 7);
      sortedDict.Add(800, 8);
      sortedDict.Add(900, 9);
      sortedDict.Add(1000, 10);

      Console.WriteLine("SortedDictionary key-value pairs...");
      IDictionaryEnumerator demoEnum = sortedDict.GetEnumerator();
      while (demoEnum.MoveNext())
         Console.WriteLine("Key = " + demoEnum.Key + ", Value = " + demoEnum.Value);
   }
}

出力

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

SortedDictionary key-value pairs...
Key = 100, Value = 1
Key = 200, Value = 2
Key = 300, Value = 3
Key = 400, Value = 4
Key = 500, Value = 5
Key = 600, Value = 6
Key = 700, Value = 7
Key = 800, Value = 8
Key = 900, Value = 9
Key = 1000, Value = 10

ポイント解説

  • GetEnumerator():SortedDictionaryの列挙子を返すメソッドです。
  • IDictionaryEnumerator:キーと値のペアを反復処理するためのインターフェースで、KeyプロパティとValueプロパティを使って各要素にアクセスできます。
  • MoveNext():列挙子を次の要素へ進めます。次の要素が存在すればtrueを、末尾に達すればfalseを返します。
  • SortedDictionaryは常にキーでソートされるため、foreach文を使わず列挙子経由でも、キーの昇順で要素を確実に取得できます。
  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