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)
{
}