代码之家  ›  专栏  ›  技术社区  ›  Phil Sandler

为IComparer<DictionaryEntry>

  •  2
  • Phil Sandler  · 技术社区  · 14 年前

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

    1 回复  |  直到 14 年前
        1
  •  3
  •   Amy    14 年前
    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);
        }
    }
    

    这能满足需要吗?