我使用Dr. WPF的ObservableSortedDictionary。Implementing IComparer <T>對於IComparer <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);
}
}
它說我不能從T型鑄造到的DictionaryEntry。
如果我直接轉換到IMyClass,它會編譯,但我得到一個運行時錯誤,說我無法從DictionaryEntry轉換到IMyClass。在運行時,x和y是DictionaryEntry的實例,它們都具有正確的IMyClass作爲其值。
對於任何可能最終在這裏盲目複製的人來說,使用ObservableSortedDictionary你可能希望對Key進行排序而不是Value。 – Thomas 2011-04-13 20:13:12