Я не знаю, почему режим отладки работает по-другому для вас.Тем не менее, я думаю, что вы можете использовать метод DescendantNodes неправильно.
Функция, которая передается в DescendantNodes, является предикатом, который определяет, продолжается ли алгоритм, идущий вниз по синтаксическому дереву, находящему потомков, дочерним узлам данного узла или нет.Если эта функция возвращает false, дополнительные дочерние элементы в этом пути синтаксического дерева не возвращаются.
Это очень отличается от использования метода LINQ Where, который фильтрует набор только для узлов, соответствующих предикату.
Например, первый может найти все вложенные чистые блоки в теле метода, но не найти блоков, являющихся частью других типов операторов, поскольку они никогда не будут рассматриваться, потому что другие типы операторов не являются самими блоками.,Однако, используя вторую форму (метод Where), функция рассматривает все узлы в корне и, таким образом, находит все блоки.