Я думаю, было бы полезно иметь препроцессор linq, где он может «предварительно обработать» ваше выражение linq в обычные операторы C#, такие как .Select() .Group() и т. Д. Это было бы полезно для изучения того, что происходит за кулисами в linq, обучение linq или отладка сложного выражения linq. Существует ли такой инструмент или средство? Я не мог найти это в LinqPad.Linq препроцессор?
0
A
ответ
3
Чтобы использовать эту функцию в LINQPad, запустите запрос и нажмите кнопку лямбда в окне результатов. Обратите внимание, что это работает только для запросов на основе IQueryable. Это означает, что для локальных запросов, необходимо вызвать .AsQueryable():
from n in new[] { "Tom", "Dick", "Harry" }.AsQueryable()
where n.Contains ("a")
select n
Перевода из выражений запроса в беглый синтаксис особенно интересен с запросами, которые имеют несколько генераторов, присоединяется или оператор пусть. Например:
var fullNames = new[] { "Anne Williams", "John Fred Smith", "Sue Green" }.AsQueryable();
IEnumerable<string> query =
from fullName in fullNames
from name in fullName.Split()
orderby fullName, name
select name + " came from " + fullName;
query.Dump();
Это приводит к:
System.String[]
.SelectMany (
fullName => fullName.Split (new Char[0]),
(fullName, name) =>
new
{
fullName = fullName,
name = name
}
)
.OrderBy (temp0 => temp0.fullName)
.ThenBy (temp0 => temp0.name)
.Select (temp0 => ((temp0.name + " came from ") + temp0.fullName))
1
Resharper может преобразовывать выражения LINQ в цепи методов.
1
Вы также можете попробовать выполнить выражения Linq через Reflector (В частности, см. Жалобу 2).
Смежные вопросы
- 1. Препроцессор C++
- 2. Препроцессор C#
- 3. Препроцессор C++
- 4. Пред-препроцессор
- 5. GCC препроцессор
- 6. Препроцессор #ifndef
- 7. Препроцессор определяет
- 8. C++ препроцессор условный параметр
- 9. Может препроцессор определить тип
- 10. Препроцессор llvm g ++ проходит
- 11. Имеет ли Ада препроцессор?
- 12. Что означает препроцессор `_AFXDLL`?
- 13. Препроцессор на C
- 14. Интерфейс Builder и препроцессор
- 15. О ## препроцессор в C
- 16. Препроцессор C++ ## operator
- 17. Рекурсивный препроцессор C определяет
- 18. C++ препроцессор __typeof
- 19. Повышение препроцессор не расширяется
- 20. size of_t препроцессор значение
- 21. C Препроцессор, макрос «Перегрузка»
- 22. Препроцессор C/C++ - 'Charify'
- 23. Как работает препроцессор C?
- 24. Реализация C препроцессор
- 25. Препроцессор передает переменные окружения?
- 26. Округление в C Препроцессор
- 27. C код Препроцессор
- 28. автоматический предварительный препроцессор подсчета
- 29. Пользовательский препроцессор gcc
- 30. Как работает препроцессор C?