【发布时间】:2011-09-15 22:30:04
【问题描述】:
我正在尝试为 2.0 框架重构以下代码(工作中需要)。下面的代码是根据previous post 提供的,我在其中试图弄清楚如何对数组列表的字典进行排序。这与那次讨论有点背道而驰。下面是代码:
MultiDimDictList myDicList = new MultiDimDictList();
myDicList.Add("fly", a_fly);
myDicList.Add("img", a_img);
myDicList.Add("bar", a_bar);
myDicList.Add("meter", a_meter);
myDicList.Add("block", a_block);
myDicList.Add("popularity", a_pop);
List<int> OrderedByPopularity = new List<int>();
ArrayList popList = myDicList["popularity"];
for (int i = 0; i < popList.Count; ++i)
{
OrderedByPopularity.Add(i);
}
OrderedByPopularity.Sort((i1, i2) =>
{
return popList[i2].CompareTo(popList[i1]);
});
当我尝试运行上述代码时,最底层的逻辑给我带来了问题 - 即“CompareTo”无法识别。我已经对此进行了一些阅读,看起来我必须实现 IComparable 才能使其正常工作,但我可以在这里使用一些帮助/建议。我应该在哪里实施 IComparable?此外,编译器还告诉我为我的 .Sort 方法使用“委托”。我是否正确,它应该看起来像: .Sort(delegate(int i1, int i2) => ?
感谢您的帮助。
【问题讨论】:
标签: c# sorting collections compact-framework2.0