public BackgroundDrawer() { _asciiCode = new AsciiCode(); _code = ""; for (var i = 0; i < 10; i++) { for (var ii = 0; ii < 50; ii++) { _code += ii == 49 ? "\n" : "_"; } } }
public static int SumAsciiDecimalCalculation(string word) { if (word == null) { throw new ArgumentNullException(nameof(word)); } Dictionary <char, int> appearList = new Dictionary <char, int>(); char[] characters = word.ToCharArray(); char? previous = null; int result = 0; foreach (char character in characters) { // Skip repeat characters if (previous != null && previous == character) { continue; } // Convert character to Enum AsciiCode asciiCode = (AsciiCode)Enum.Parse(typeof(AsciiCode), character.ToString(), false); // Check if the character has appeared before if (appearList.ContainsKey(character)) { // Increment appearance count appearList[character]++; // If a character appears more than once non-consecutively, its calculated value is its [decimal value] * [appearance count] result += ((int)asciiCode * appearList[character]); } else { appearList.Add(character, 1); result += (int)asciiCode; } previous = character; } return(result); }