У меня есть словарь <> который я хочу сортировать по значению, поэтому я сделал это, поместив словарь в список <>, затем используя метод .Sort.Сортировка Словарь <> по значению, индекс поиска от ключа
Я добавил это обратно в словарь <>. Можно ли найти новый индекс/порядок с помощью ключа словаря?
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
Что вы пытаетесь сделать в мире? Если вам нужна уникальная коллекция, используйте словарь. Если вам нужен индекс элемента в отсортированном списке, используйте SortedList. –
@Michael Todd: 'SortedList' - неправильное решение. Он хочет, чтобы элементы упорядочивались в соответствии с пользовательским сопоставлением * значений * в коллекции. –