Given a string str. The task is to find the maximum occurring character in the string str. If more than one character occurs the maximum number of time then print the lexicographically smaller character. code example

Example: c# + max char frequency in string

//return the character that appears the maximum number of times in the string
//contain only ASCII characters, from the ranges ('a'-'z','A'-'Z','0'-'9'), and case sensitive
//If there is a tie in the maximum number of times a character appears in the string, return the character that appears first in the string 

public static void Main(string[] args)
{
  CharCounter("This is a neat day for Things about Coding9999");        
}
public static void CharCounter(string str) 
{
    string strValidated = "";
    str = str.Replace(" ", "");     //Remove all spaces

  //Validate alpha-numberic only
    if (Regex.IsMatch(str, @"^[A-Za-z0-9]+$")) strValidated = str;
    else throw new FormatException("--------> Only Apha Numeric values allowed");

    Dictionary<char, int> dict = new Dictionary<char, int>();

    foreach (char c in strValidated)    //Create Dictionary
    {
      if (dict.ContainsKey(c)) dict[c] = dict[c] + 1;
      else dict.Add(c, 1);
    }
  //Sort(K,V) by Highest Values
    var ordered = dict.OrderByDescending(x => x.Value)
      .ToDictionary(d => d.Key, d => d.Value);

  //var singleEntryDict = ordered.First();  
    var result = ordered.Take(1)
      .ToDictionary(d => d.Key, d => d.Value);

    foreach (var item in result.Keys)
    {
      Console.WriteLine($"Key= {item} : Value= {result[item]}");
    }
            
}