У меня спортивный интерес, как сделать следующий запрос более лаконичным. И вообще понять как осуществляются подзапросы в linq к такой коллекции как Dictionary.
Получить из коллекции Dictionary<int,int> элемент с самым большим Value, если будет несколько элементов с максимальным Value, то получить все.
Затем из полученной коллекции если элементов больше одного, взять тот у которого самый маленький Key.
Из-за своего невежества, я создал такого монстра, подскажите как сделать красиво и менее многословно,желательно все уместить в единый запрос, а не как у меня в два.
Dictionary<int,int> d = new Dictionary<int,int>();
var q1 = from a1 in d
where a1.Value == d.Values.Max()
select a1;
var q2 = (from a2 in q1
where a2.Key == (from a3 in q1 select a3.Key).Min()
select a2).First();
Вроде бы не монстр :) :
var result = d.OrderByDescending(n => n.Value).ThenBy(m => m.Key).First();
Или как вариант:
var result = (from n in d orderby n.Value descending, n.Key select n).First();
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости