using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp; using Microsoft.CodeAnalysis.CSharp.Syntax; var statementText = "int a = 5 + 4;"; var statement = SyntaxFactory.ParseStatement(statementText); var expressions = statement.DescendantNodes().OfType();
using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp; using Microsoft.CodeAnalysis.CSharp.Syntax; var statementText = @"// This is a comment int a; // This is another comment"; var statement = SyntaxFactory.ParseSyntaxTree(statementText).GetRoot().DescendantNodesAndSelf().OfTypeIn this example, we start with a C# code snippet that includes some comments. We parse the code using `ParseSyntaxTree` to get a syntax tree, and then use `DescendantNodesAndSelf` to get all nodes in the tree, including the root node. We filter the result to only include nodes of type `StatementSyntax`, and then take the single statement node. We then call `DescendantNodes` on this statement to get all descendant nodes, and filter the result to exclude nodes of kind `SingleLineCommentTrivia` and `MultiLineCommentTrivia`. This gives us the statement with all comments removed. Package library: Microsoft.CodeAnalysis.CSharp.Syntax.().Single(); var noComments = statement.DescendantNodes().Where(n => n.Kind() != SyntaxKind.SingleLineCommentTrivia && n.Kind() != SyntaxKind.MultiLineCommentTrivia);