に関するドキュメントは次のとおりIEnumerator
です。それらはリストの値を取得するために使用されますが、長さは必ずしも事前にわかっているわけではありません (わかっていても)。enumerate
この言葉は、「1つずつ数えたり、名前を付けたりする」という意味の に由来します。
IEnumerator
および.NET のIEnumerator<T>
allIEnumerable
およびインターフェイス (後者は両方を提供) によって提供されます。ステートメントはこれらのインターフェイス メソッドを介して列挙子を直接操作するように設計されているため、これは重要です。IEnumerable<T>
GetEnumerator()
foreach
たとえば、次のようになります。
IEnumerator enumerator = enumerable.GetEnumerator();
while (enumerator.MoveNext())
{
object item = enumerator.Current;
// Perform logic on the item
}
なります:
foreach(object item in enumerable)
{
// Perform logic on the item
}
特定のシナリオに関しては、.NET のほとんどすべてのコレクションが実装されていますIEnumerable
。そのため、次のことができます。
public IEnumerator Enumerate(IEnumerable enumerable)
{
// List implements IEnumerable, but could be any collection.
List<string> list = new List<string>();
foreach(string value in enumerable)
{
list.Add(value + "roxxors");
}
return list.GetEnumerator();
}