2011-04-26 6 views
1

C# .net에서 foreach 문을 사용할 때 .net은 컬렉션의 요소를 처리하는 순서를 어떻게 결정합니까?.net은 "foreach"루프의 순서를 어떻게 결정합니까?

+0

어떤 유형의 컬렉션입니까? – bendewey

+0

[각 루프에 대한 C#의 정렬 순서] (http://stackoverflow.com/questions/1790245/sort-order-of-c-for-each-loop) –

+0

asnwers에게 감사드립니다! IEnumerable 인터페이스에 대해 배워야 할 것입니다. –

답변

10

foreach을 사용하면 IEnumerable 또는 IEnumerable<T>을 구현하는 개체가 "반복"됩니다. 순서는 오브젝트 구현 IEnumerable에 의해 결정됩니다.

모든 클래스에서이 순서가 사용자 정의 될 수 있습니다. 예를 들어, List<T>의 경우 목록에 있습니다 (색인 별). 그러나 Dictionary<T,U>과 같은 일부 클래스는 주문을 전혀 보장하지 않습니다.이 경우 주문 보증을 제공하면 성능이 크게 저하되므로 각 항목이 한 번에 열거됩니다.

+1

나는 대답을 삭제했다. "나는 0에서 시작해서 더 이상 존재하지 않을 때까지 간다고 확신한다." – hunter

1

IEnumerable 및 IEnumerator 인터페이스를 사용하고 있습니다. 그들은 하나씩 값을 제공하므로 닷넷은 주문에 신경 쓸 필요가 없습니다. 값이 전달 될 때 순서대로 처리합니다.

관련 문제