Я пытаюсь реализовать инициализатор Diagnostic Analyzer for Collection и соответствующий поставщик исправлений кода.
Неправильный код:
var sampleList= new List<string>();
sampleList.Add("");
sampleList.Add("");
После исправления кода:
var sampleList= new List<string>(){"", ""};
Но я застрял в этой проблеме: как только я получаю узел для LocalDeclarationStatement, я не знаю, существует ли способ получить следующий соседний узел от родителя.
На приведенном выше рисунке мне нужны как ExpressionStatement после анализа LocalDeclarationStatement
ТРЕБОВАНИЯ к анализатору
- Определите
LocalDeclarationStatement
, коллекцию, которая уже инициализирована, но не содержитCollectionInitializerExpression
- Найдите, есть ли в самой следующей строке оператор Expression, использующий метод
Add
для той же коллекции.
ТРЕБОВАНИЕ для исправления кода
- Предоставьте синтаксис инициализатора коллекции для смежных выражений, использующих метод
Add
в коллекции. - Следует избегать любого другого прерывистого использования метода Add в коллекции.