我有一个字典<>我想根据价值排序,所以我已经通过将字典放入列表<>然后使用.Sort方法。排序字典<>值,从关键字查找索引
我已经添加回到词典<>。是否可以通过使用Dictionary键来查找新的索引/顺序?
Dictionary<int, MyObject> toCompare = new Dictionary<int, MyObject>();
toCompare.Add(0, new MyObject());
toCompare.Add(1, new MyObject());
toCompare.Add(2, new MyObject());
Dictionary<int, MyObject> items = new Dictionary<int, MyObject>();
List<KeyValuePair<int, MyObject>> values = new List<KeyValuePair<int, MyObject>> (toCompare);
// Sort.
values.Sort(new MyComparer());
// Convert back into a dictionary.
foreach(KeyValuePair<int, PropertyAppraisal> item in values)
{
// Add to collection.
items.Add(item.Key, item.Value);
}
// THIS IS THE PART I CAN'T DO...
int sortedIndex = items.GetItemIndexByKey(0);
不是词典的顺序在C#defenition未定义? – Wouter 2010-03-26 15:46:12
你想要做什么?如果您需要独特的集合,请使用字典。如果您需要排序列表中项目的索引,请使用SortedList。 – 2010-03-26 15:46:41
@Michael Todd:'SortedList'不是正确的解决方案。他希望根据集合中*值*的自定义比较来订购商品。 – 2010-03-26 15:57:49