Ошибка System.OutOfMemoryException - C#
Формулировка задачи:
string [,,,] MX= new string [303,100,34,305]
Решение задачи: «Ошибка System.OutOfMemoryException»
textual
Листинг программы
static void Main() { string str = @"ааабабвггд"; int period = 2; var periods = Split(str,period); // получим массив periods[n] строк каждая из которых длиной в 2 символа? //(P.S. если что, нужно использовать период от 2 до [str.length / 2]) var usedSymbols = str.Distinct(); // usedSymbols будет исходной строкой str без повторяющихся символов? //(P.S. если что, нужно использовать алфавит из 34 символов - все маленькие русские буквы + пробел) var result = new Dictionary<char, int[]>(); // не понимаю какого типа будет переменная result >_< на выбор либо char либо массив int[]? или оба сразу? foreach (var symbol in usedSymbols) //для каждого символа в нашей строке без повторов (если я правильно понял мы тем самым как бы обратились к каждому символу нашего алфавита) { var counts = new int[period]; //counts[2] for (int i = 0; i < period; i++) // i=0;i<2; counts[i] = periods.Count(f => f[i] == symbol); //ЧТО ЭТО О_О возвращаем кол-во элементов в массиве строк periods? а что за условие (f => f[i] == symbol) ? result.Add(symbol, counts);//ну тут походу происходит заполнение матрицы позиций } foreach (var charCount in result) //вывод на экран букв { Console.Write ( charCount.Key + " " ); foreach (int count in charCount.Value) //вывод на экран кол-во встреченых раз Console.Write(count + " "); Console.WriteLine(); } Console.ReadKey(); } private static List<char[]> Split(string str, int length) // ХЗ ЧТО ЭТО О_О судя по всему переопределние сплита? А что он на выходе вернет? { var range = new List<char[]>(); for (int i = 0; i < str.Length; i+=length) { var chars = new char[length]; for (int j = 0; j < length; j++) { if (str.Length > i + j) chars[j] = str[i+j]; } range.Add(chars); } return range; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д