Если предположить, что вы теперь пытаетесь выяснить, как хранить и упорядочивать er набор объектов с несколькими свойствами, то у вас есть несколько вариантов. Nikhil Agrawal's answer - отличное решение, но есть моменты, когда вам может не понадобиться/не нужно создавать для этого пользовательский класс. Для этих ситуаций (предпочтительно, когда ваш код является частным, а не частью какого-либо API), альтернативы ниже могут быть вариантом.
KeyValuePairs
В зависимости от ваших требований и исходного сообщения с использованием словарей, похоже, вместо словаря словарей (многоуровневый), вы, вероятно, хотели словарь keyvaluepairs (плоского).
// using keyvaluepair
var keyValueDict = new Dictionary<string, KeyValuePair<double, double>>();
keyValueDict.Add("string", new KeyValuePair<double, double>(5.8, 7.4));
var sortedKeyValues = keyValueDict.OrderBy(x => x.Value.Key);
Кортеж
Альтернативой не столь приятным KeyValuePair является Кортеж введен в .NET 4. Кортеж представляет собой общий класс, который позволяет хранить введенные значения свойств, не создавая свой собственный класс. Стоит отметить, что существуют кортежи для до 8 свойств.
// using tuple
var tupleList = new List<Tuple<string, double, double>>();
tupleList.Add(new Tuple<string, double, double>("string", 5.8, 7.4));
var sortedTuples = tupleList.OrderBy(x => x.Item2);
Есть некоторые хорошие SO вопросы о кортежей, если вы заинтересованы:
Is Using .NET 4.0 Tuples in my C# Code a Poor Design Decision?
Are EventArg classes needed now that we have generics
Я даже не собираюсь представить себе, почему Вы нуждались бы такую структуру данных, но то, что некоторые примеры данных, которые вы будете держать, и как вы пытаетесь сортировать данные? Помните, что сам словарь не сортируется. – gunr2171
Некоторые значения словарей и на каком основании вы хотите их отсортировать. –
извините, я не эксперт по C#, вы бы предложили способ сохранить 3 значения как один элемент? – user1225072