2010-04-15 6 views
2

저는 Dr. WPF의 ObservableSortedDictionary를 사용하고 있습니다.IComparer 구현 <T> ICircarer <DictionaryEntry>

생성자는 다음과 같습니다 : 정말 생성자를 충족시키고 작동 구현을 만들기 위해 고군분투

public ObservableSortedDictionary(IComparer<DictionaryEntry> comparer) 

.

내 현재 코드 (즉, 컴파일되지 않습니다)입니다 :

public class TimeCreatedComparer<T> : IComparer<T> 
{ 
    public int Compare(T x, T y) 
    { 
     var myclass1 = (IMyClass)((DictionaryEntry)x).Value; 
     var myclass2 = (IMyClass)((DictionaryEntry)y).Value; 
     return myclass1.TimeCreated.CompareTo(myclass2.TimeCreated); 
    } 
} 

그것은 내가 DictionaryEntry에 T에서 캐스팅 할 수 없습니다 말했다.

IMyClass로 직접 변환하면 컴파일되지만 DictionaryEntry에서 IMyClass로 변환 할 수 없다는 런타임 오류가 발생합니다. 런타임에 x와 y는 DictionaryEntry의 인스턴스이며 각 인스턴스는 값으로 올바른 IMyClass를가집니다.

+0

ObservableSortedDictionary를 사용하여 여기에 맹목적으로 복사 할 수있는 사람을위한 메모 만 키가 아닌 키를 정렬 할 수 있습니다. – Thomas

답변

3
public class TimeCreatedComparer : IComparer<DictionaryEntry> 
{ 
    public int Compare(DictionaryEntry x, DictionaryEntry y) 
    { 
     var myclass1 = (IMyClass)x.Value; 
     var myclass2 = (IMyClass)y.Value; 
     return myclass1.TimeCreated.CompareTo(myclass2.TimeCreated); 
    } 
} 

이 작업이 필요한 기능입니까?

+0

Arggggggggggg. 아주 간단합니다. –