我正在使用WPF博士的ObservableSortedDictionary。
构造函数如下所示:
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作为它们的值。
答案 0 :(得分: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);
}
}
这会做什么需要吗?