Сортировать словарь с помощью LINQ - PullRequest
0 голосов
/ 18 июля 2011

У меня есть

Dim carsDic as Dictionary(Of String, Integer)
Dictionary<string, int> carsDic;

Это список кодов автомобилей (строка) и их время (целое число, в минутах);

Я хочу отсортировать автомобили по времени,затем по коду и верните проигравший (старшее время, верхний код).

Как я могу использовать LINQ для этого?(VB.NET !!, C # ?!)

Ответы [ 4 ]

4 голосов
/ 18 июля 2011
var loser = carsDic.OrderByDescending(x => x.Value)
                   .ThenByDescending(x => x.Key).First();
2 голосов
/ 18 июля 2011

carsDic.OrderBy(cd => cd.Value).ThenBy(cd => cd.Key).Last()

1 голос
/ 18 июля 2011
var deadLastCar = carsDic.OrderByDescending(e => e.Value).ThenByDescending (e => e.Key).First();
0 голосов
/ 18 июля 2011

Поскольку это домашнее задание, я не собираюсь давать готовый ответ.

Самый простой (самый простой) подход состоит в том, чтобы собрать всю информацию в List<Something>, где Something это класс, который имеет свойства как Code, так и Time.Это может быть анонимный тип (например, select new { Code = "X", Time = 0 }) или Tuple` или ваш собственный класс.

Затем вы можете попробовать отсортировать List в соответствии с вашими требованиями.

ПопробуйтеПодумайте, как это можно реализовать, и отредактируйте вопрос, если вам нужна помощь с чем-то более конкретным в процессе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...