Модификация без словаря
Дано следующее задание: Вводится текст. Конец ввода F1. В тексте найти, какая из букв первого слова встречается чаще и определить количество ее повторений. (Статические методы без использования статических полей)
Код решения:
using System;
using System.Collections.Generic;
using System.Text;
namespace Лабораторная_работа_2
{
class Program
{
static void Main(string[] args)
{
var builder = new StringBuilder();
EnterWhileNotF1(builder);
var dicCountLetter = CountLettersFirstWordInText(builder);
char letter =' ';
var count = SearchMaxCountLetter(dicCountLetter, ref letter);
Console.WriteLine();
Console.WriteLine("Буква '{0}' из первого слова встречалась: {1}", letter, count);
}
static void EnterWhileNotF1(StringBuilder text)//ввод текста до ф1
{
var input = Console.ReadKey();
while (input.Key != ConsoleKey.F1)
{
text.Append(input.KeyChar);
input = Console.ReadKey();
}
}
static Dictionary<char, int> CountLettersFirstWordInText(StringBuilder text) //Словарь с буквами первого слова и их кол-вом в тексте
{
var result = new Dictionary<char, int>();
var textSplit = text.ToString().Split();
InicilizeDictionary(result, textSplit[0]);
for (int i = 1;i<textSplit.Length;i++)
{
foreach(var e in textSplit[i])
{
if(result.ContainsKey(e))
result[e]++;
}
}
return result;
}
static void InicilizeDictionary(Dictionary<char, int> dic,string firstWord)// инициализируем словарь по буквам первого слова
{
foreach(var e in firstWord)
{
dic[e] = 0;
}
}
static int SearchMaxCountLetter(Dictionary<char, int> dic, ref char letter)// ищем самую популярную букву
{
var max = -1;
foreach(var e in dic)
{
if(e.Value > max)
{
max = e.Value;
letter = e.Key;
}
}
return max;
}
}
}
Нужно решить без словаря, думаю, что можно сделать через массив, но не имею понятия, как это сделать(