спасибо огромное, ниче не понял, но буду разбираться по чуть-чуть.
Можно сделать попроще:
struct RepetitionData
{
public RepetitionData(int strIndex, char character, int repetitions)
{
this.StrIndex = strIndex;
this.Character = character;
this.Repetitions = repetitions;
}
public int StrIndex { get; set; }
public char Character { get; set; }
public int Repetitions { get; set; }
}
var repetitionList = new List<RepetitionData>(); // список повторений
var repetitionDictionary = new Dictionary<char, int>(); // словарь для подсчета повторений
// идем по циклу массива строк
for (var index = 0; index < strings.Length; index++)
{
// идем по символам строки
foreach (var c in strings[index])
{
// если в словаре есть символ
if (repetitionDictionary.ContainsKey(c))
repetitionDictionary[c]++; // увеличиваем количество этих символов
else // если нет
repetitionDictionary.Add(c, 1); // добавляем в словарь
}
// идем по словарю
foreach (var kvp in repetitionDictionary)
{
// заносим повторения в список
repetitionList.Add(new RepetitionData(index, kvp.Key, kvp.Value));
}
repetitionDictionary.Clear();
}
var max = repetitionList[0];
foreach (var repetition in repetitionList)
{
// ищем максимум в списке повторений
if (repetition.Repetitions > max.Repetitions)
max = repetition;
}