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は追加順ではなくキーのアルファベット順で要素を保持することに注意してください。
-
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