Я написал исчерпывающую статью, посвященную этому вопросу, опубликованную на Simple-Talk.com ( Раскрытые секреты LINQ: создание цепочек и отладка ) еще в 2010 году:
Я говорю о LINQPad (как упоминалось ранее OwenP) как о замечательном инструменте external для Visual Studio. Обратите особое внимание на его необычный метод Dump (). Вы можете добавить это в одну или несколько точек в цепочке LINQ, чтобы ваши данные были удивительно чистыми и понятными. Хотя LINQPad очень полезен, он является внешним по отношению к Visual Studio. Поэтому я также представляю несколько методов, доступных для использования в Visual Studio, потому что иногда просто не практично переносить кусок кода в LINQPad:
(1) Внедрить вызовы метода расширения Dump (), который я представляю в своей статье, чтобы разрешить ведение журнала. Я начал с метода Bart De Smet's Watch () в его информативной статье LINQ to Objects - Debugging и добавил некоторую маркировку и раскрашивание для улучшения визуализации, хотя он по-прежнему бледнеет по сравнению с выводом дампа LINQPad.
(2) Добавьте визуализацию LINQPad прямо в Visual Studio с помощью надстройки LINQPad Visualizer Роберта Иванка. Не уверен, что это было из-за моего подталкивания :-), но пара неудобств, которые присутствовали, когда я писал свою статью, теперь все замечательно устранены в последней версии. Он имеет полную поддержку VS2010 и позволяет вам исследовать любой объект, который вам нравится при отладке.
(3) Вставьте операторы nop в середину цепочки LINQ, чтобы вы могли устанавливать точки останова, как описано ранее Amazing Pete.
2016.12.01 Обновление
И я только что написал продолжение вышеприведенной статьи под названием Отладка и визуализация LINQ , которая показывает, что настоящая возможность отладки LINQ наконец-то появилась в Visual Studio 2015 с готовой к выпуску новая функция в OzCode. Ответ Дрора на этот вопрос показывает его проблеск, но я призываю вас прочитать мою новую статью для углубленного «как». (И я не работает для OzCode. :-)