2013-03-01 2 views
1

에서 열거를 가져올 수 없습니다 http://msdn.microsoft.com/en-us/library/system.collections.sortedlist.getenumerator.aspx를, 그것은 내 코드를 같이하는 것은 올바르지 만 VS 말 :내가이 객체 가지고 SortedList

수 없어 System.Collections.Generic.IEnumerator> ' to'System.Collections.IDictionaryEnumerator '변환하십시오.

+0

'foreach'또는 이와 유사한 방법으로 * 사용하는 대신에 열거자를 얻으려고하는 이유는 무엇입니까? –

+0

현재 요소를 가져오고 싶기 때문입니다. 프레임은 임시 지연을 가지고, enumerotar는 다음 지연 시간으로 이동합니다. –

답변

4

IDictionaryEnumerator 유형은 이전 제네릭 컬렉션 유형에 사용됩니다. 이 경우 강력한 형식의 컬렉션이 있고 대신 IEnumerater<KeyValuePair<int, Frame>>을 반환합니다. 해당 유형을 대신

private IEnumerator<KeyValuePair<int, Frame>> frameEnumerator = null; 

사용 주 : SortedList<TKey, TValue>에 대한 열거 형은 참으로 IDictionaryEnumerator 인터페이스를 구현 않습니다. 그 중 하나를 선호하는 경우 명시 적 캐스트로 액세스 할 수 있습니다.

frameEnumerator = (IDictionaryEnumerator)frames.GetEnumerator(); 

나는이 경로를 피할 것입니다. 강력하게 형식화 된 인터페이스를 사용하고 코드에서 불필요한 변환을 피하는 것이 좋습니다.

+0

고맙다, 그것이 작동한다 :) –

+0

나는 대답을 받아들이 기 위해 10 분을 기다려야한다. .. 이유를 알고있다. 그러나 나는 할 것이다. –

0

는 당신이 frameEnumerator가 null의 경우 확인 있는지 확인 후

frameEnumerator = frames.GetEnumerator() as IDictionaryEnumerator; 

을 던져보십시오.