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文を使わず列挙子経由でも、キーの昇順で要素を確実に取得できます。
-
C#でStringCollectionを反復処理する列挙子(Enumerator)を取得する方法
StringCollectionを反復処理するための列挙子(Enumerator)を取得するには、GetEnumerator()メソッドを使用します。このメソッドはStringEnumerator型のオブジェクトを返し、MoveNext()とCurrentを組み合わせることで、コレクション内の各要素に順番にアクセスできます。基本的な使い方まずは、配列の要素をStringCollectionに追加し、列挙子を使って反復処理する例を見てみましょう。using System; using System.Collections.Specialized; public class Demo { &nbs
-
C#でドライブのフォーマット形式(NTFS/FAT32)を取得する方法
C#では、DriveInfoクラスが持つDriveFormatプロパティを使うことで、ドライブのフォーマット形式を簡単に取得できます。Windowsシステムにおけるドライブ形式は、主に「NTFS」や「FAT32」などです。ドライブの指定方法まず、形式を表示したいドライブを指定してDriveInfoオブジェクトを作成します。以下の例ではCドライブを指定しています。DriveInfo dInfo = new DriveInfo(C);DriveFormatプロパティで形式を取得次に、DriveFormatプロパティを参照することで、指定したドライブのフォーマット形式を取得できます。dInfo.Dr