private void CheckChars(CharToCheck charToCheck)
        {
            if (Sheet.Pattern[charToCheck.LineIndex][charToCheck.CharIndex] == '#')
            {
                Sheet.Pattern[charToCheck.LineIndex][charToCheck.CharIndex] = '.';

                AddNeighbours(charToCheck.LineIndex, charToCheck.CharIndex);
            }
        }
        private void CheckInitialIsHash(int lineIndex, int charIndex)
        {
            var initialCharacter = Sheet.Pattern[lineIndex][charIndex];

            var charToCheck = new CharToCheck()
            {
                LineIndex = lineIndex,
                CharIndex = charIndex
            };

            if (initialCharacter == '#')
            {
                CharsToCheck.Add(charToCheck);
                Counter += 1;
            }
            while (CharsToCheck.Count > 0)
            {
                var character = CharsToCheck.First();
                CharsToCheck.Remove(character);
                CheckChars(character);
            }
        }
 private void AddNeighbours(int lineIndex, int charIndex)
 {
     if (charIndex + 1 < Sheet.Pattern[lineIndex].Count)
     {
         var charToCheck = new CharToCheck()
         {
             LineIndex = lineIndex,
             CharIndex = charIndex + 1
         };
         CharsToCheck.Add(charToCheck);
     }
     if (lineIndex + 1 < Sheet.Pattern.Count)
     {
         var charToCheck = new CharToCheck()
         {
             LineIndex = lineIndex + 1,
             CharIndex = charIndex
         };
         CharsToCheck.Add(charToCheck);
     }
     if (charIndex > 0)
     {
         var charToCheck = new CharToCheck()
         {
             LineIndex = lineIndex,
             CharIndex = charIndex - 1
         };
         CharsToCheck.Add(charToCheck);
     }
     if (lineIndex > 0)
     {
         var charToCheck = new CharToCheck()
         {
             LineIndex = lineIndex - 1,
             CharIndex = charIndex
         };
         CharsToCheck.Add(charToCheck);
     }
 }