[c#] IEnumerable을 지원하는 컬렉션을 반복하는 방법은 무엇입니까?

IEnumerable을 지원하는 컬렉션을 반복하는 방법은 무엇입니까?



답변

정규직은 다음을 수행합니다.

foreach (var item in collection)
{
    // do your stuff   
}


답변

foreach루프 를 사용하는 이미 제안 된 방법과 함께, 구현하는 모든 객체가 메소드 를 통해 인터페이스를 IEnumerable제공 한다고도 언급했습니다 . 이 메서드는 일반적으로 필요하지 않지만 컬렉션을 수동으로 반복하는 데 사용할 수 있으며 컬렉션에 대한 자체 확장 메서드를 작성할 때 특히 유용합니다.IEnumeratorGetEnumerator

IEnumerable<T> mySequence;
using (var sequenceEnum = mySequence.GetEnumerator())
{
    while (sequenceEnum.MoveNext())
    {
        // Do something with sequenceEnum.Current.
    }
}

가장 좋은 예는 루프 에서는 불가능한 두 시퀀스를 동시에 반복하려는 경우 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)
{

}


답변

컬렉션을 반환하기 전에 기다리는 것을 잊었을 수 있습니다.


답변