Если вы думаете об этом, вы на самом деле не запрашиваете запрос. Запрос по существу задает вопрос о данных, а затем выстраивает ответ определенным образом. Однако то, что вы делаете с этим ответом, не зависит от его генерации.
В вашем случае «вопрос» является частью запроса «каковы мои данные?» (поскольку вы не применили предложение Where), а часть «расположение» - «в порядке убывания на основе значения каждого элемента». Вы получаете IEnumerable<T>
, который при перечислении выплевывает ваш "ответ".
На этом этапе вам действительно нужно что-то сделать с ответом, поэтому вы перечисляете его с помощью цикла foreach
, а затем выполняете любые необходимые действия с каждым элементом (как вы делаете в своем вопросе). Я думаю, что это это совершенно разумный подход, который дает понять, что происходит.
Если вам абсолютно необходимо использовать запрос LINQ, вы можете сделать это:
a.OrderByDescending(x => x.Value).ToList().ForEach(x => { Console.WriteLine(x.Key + ' : ' + x.Value); });
РЕДАКТИРОВАТЬ : Это сообщение в блоге содержит больше.