IEnumerable<CommentBlock> GetCommentBlocks(string[] lines) { var block = new CommentBlock(); foreach(var line in lines) { if(!IsCommentLine(line)) { if(!block.IsEmpty) { yield return block; block = new CommentBlock(); } continue; } var trimmmedLine = line.TrimStart('/', '\t', ' '); if(!String.IsNullOrWhiteSpace(trimmmedLine)) block.AddLine(trimmmedLine); } if(!block.IsEmpty) yield return block; }