我正在使用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/

10-12 22:46