IEnumerableをサポートするコレクションをループする方法は?
それぞれのレギュラーが行います:
foreach (var item in collection)
{
// do your stuff
}
既に提案されているforeach
ループの使用方法に加えて、IEnumerable
を実装するオブジェクトは、IEnumerator
メソッドを介してGetEnumerator
インターフェイスも提供することにも言及すると思います。通常、このメソッドは必要ありませんが、これはコレクションを手動で反復処理するために使用でき、コレクション用の独自の拡張メソッドを作成するときに特に役立ちます。
IEnumerable<T> mySequence;
using (var sequenceEnum = mySequence.GetEnumerator())
{
while (sequenceEnum.MoveNext())
{
// Do something with sequenceEnum.Current.
}
}
主要な例は、2つのシーケンスを同時にで繰り返したい場合です。これは、foreach
ループでは不可能です。
または非常に古典的な昔ながらの方法
IEnumerable<string> collection = new List<string>() { "a", "b", "c" };
for(int i = 0; i < collection.Count(); i++)
{
string str1 = collection.ElementAt(i);
// do your stuff
}
たぶん、あなたもこの方法が必要です:-)
foreach (var element in instanceOfAClassThatImplelemntIEnumerable)
{
}