private double GetMaxPercentCell(ListСell cells) { var maxPercentCell = 0.0; foreach (Сell numberField in cells) { if (VisibleСell.IsPresent(numberField)) { var aroundCells = VisibleСell.GetAroundCellsNoTags(numberField, size); var countFlags = 0; foreach (Сell aroundField in aroundCells) { if (MarkCell.IsPresent(aroundField)) { countFlags++; } } var countNoFlags = aroundCells.Count - countFlags; var percentCell = 1.0 * (VisibleСell[numberField.Row, numberField.Column].Value - countFlags) / countNoFlags; if (maxPercentCell < percentCell) { maxPercentCell = percentCell; } } } return(maxPercentCell); }