IEnumerable <string> CollectComments(CellRange a, CellRange b) { bool valFound = false; foreach (var r in CellRange.EnumBetween(a, b)) { Expr val; sheet.vals.TryGetValue(r, out val); val = val as IndexExpr; if (valFound) { if (val == null) { yield break; } } else if (val == null) { continue; } valFound = true; string res; if (val.nodeType == ExprType.Index) { var ie = (ConstExpr)((IndexExpr)val).index; res = stringTable[Convert.ToInt32(ie.value)]; } else { res = val.ToString(); } if (!string.IsNullOrWhiteSpace(res)) { yield return(res); } } }