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.
}
}
가장 좋은 예는 루프 에서는 불가능한 두 시퀀스를 동시에 반복하려는 경우 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)
{
}
답변
컬렉션을 반환하기 전에 기다리는 것을 잊었을 수 있습니다.