Пример #1
0
        private string GetTaskVariableName()
        {
            var variables = _block.GetThisAndParents()
                            .OfType <BlockSyntax>()
                            .SelectMany(b => b.Statements)
                            .OfType <LocalDeclarationStatementSyntax>()
                            .SelectMany(l => l.Declaration.Variables)
                            .Select(l => l.Identifier.Text);

            var taskIndexes = variables
                              .Select(v => taskRegex.Match(v))
                              .WhereNot(v => v == null)
                              .Select(v => v.Groups[1].Value)
                              .Select(long.Parse);

            var newTaskIndex = taskIndexes
                               .OrderByDescending(i => i)
                               .Select(i => i + 1)
                               .FirstOrDefault();

            return($"task{newTaskIndex}");
        }