Итак, я обдумал то, что я должен изменить. Вставленный символ - это мое издание. Я создал эту программу без проблем со строкой, и теперь я должен изменить программу от подсчета количества вхождений слов до количества вхождений букв.
Я знаю, что для этого мне нужно было изменить массив на char, чтобы он представлял собой массив символов. Однако, когда я делаю это, я больше не могу сравнивать его, и если я пытаюсь изменить wordkey на var, он все равно не позволяет мне сравнивать его.
В книге, которую я читаю, говорится, что если бы я хотел сравнить символы, я мог бы просто иметь метод DisplayDictionary
, получающий аргумент типа SortedDictionary<char, int>
без изменений. Если бы я мог просто подтолкнуть в правильном направлении. Я уже пару дней возился с этим и, похоже, просто не могу этого понять.
class Program
{
static void Main(string[] args)
***{
//create sorted dictionary based on user input
SortedDictionary<char, int> dictionary = CollectWords();***
//display sorted dictionary content
DisplayDictionary(dictionary);
} // end main
***//created sorted dictionary from user input
private static SortedDictionary<char, int> CollectWords()
{***
//create a new sorted dictionary
SortedDictionary<string, int> dictionary = new SortedDictionary<string, int>();
Console.WriteLine("Enter a string: ");
string input = Console.ReadLine();
//split input text into tokens
string[] words = Regex.Split(input, @"\s");
//processing input words
foreach (var word in words)
{
string wordKey = word.ToLower();
//if ghe dictionary contains the word
if (dictionary.ContainsKey(wordKey))
{
++dictionary[wordKey];
}//end if
else
//add new word with count 1 to tge dictionary
dictionary.Add(wordKey, 1);
}//end foreach method
***return dictionary;***
}//end sorted dictionary wordKey
***//display dictionary content
private static void DisplayDictionary<K, V>(SortedDictionary<K, V> dictionary)
{***
Console.WriteLine("\nSorted dictionary contains:\n{0, -12}{1, -12} ", "Key: ", "Value: ");
//generate output for each key in the sorted dictionary
//by iterating though the Keys property with a foreach statement
foreach (K key in dictionary.Keys)
Console.WriteLine("{0, -12}{1, -12} ", key, dictionary[key]);
Console.WriteLine("\nsize: {0}", dictionary.Count);
}//end display method
}//end class