我正在使用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作为其值。
最佳答案
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);
}
}
请问这是做什么的吗?
关于c# - 为IComparer <DictionaryEntry>实现IComparer <T>,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2648442/