Ошибка System.OutOfMemoryException - C#

Узнай цену своей работы

Формулировка задачи:

Листинг программы
  1. string [,,,] MX= new string [303,100,34,305]
Я понимаю что ошибка выдает исключение о том что не хватает памяти. Вот вопрос - почему? Сколько памяти резервируется при объявлении одной строки?

Решение задачи: «Ошибка System.OutOfMemoryException»

textual
Листинг программы
  1.         static void Main()
  2.         {
  3.             string str = @"ааабабвггд";
  4.  
  5.             int period = 2;
  6.  
  7.             var periods = Split(str,period); // получим массив periods[n] строк каждая из которых длиной в 2 символа?
  8. //(P.S. если что, нужно использовать период от 2 до [str.length / 2])
  9.  
  10.             var usedSymbols = str.Distinct(); // usedSymbols будет исходной строкой str без повторяющихся символов?
  11. //(P.S. если что, нужно использовать алфавит из 34 символов - все маленькие русские буквы + пробел)
  12.  
  13.             var result = new Dictionary<char, int[]>(); // не понимаю какого типа будет переменная result >_< на выбор либо char либо массив int[]? или оба сразу?
  14.  
  15.             foreach (var symbol in usedSymbols) //для каждого символа в нашей строке без повторов (если я правильно понял мы тем самым как бы обратились к каждому символу нашего алфавита)
  16.             {
  17.                 var counts = new int[period]; //counts[2]
  18.                 for (int i = 0; i < period; i++) // i=0;i<2;
  19.                     counts[i] = periods.Count(f => f[i] == symbol); //ЧТО ЭТО О_О возвращаем кол-во элементов в массиве строк periods? а что за условие (f => f[i] == symbol) ?
  20.  
  21.                 result.Add(symbol, counts);//ну тут походу происходит заполнение матрицы позиций
  22.             }
  23.  
  24.             foreach (var charCount in result) //вывод на экран букв
  25.             {
  26.                 Console.Write ( charCount.Key + " " );
  27.  
  28.                 foreach (int count in charCount.Value) //вывод на экран кол-во встреченых раз
  29.                     Console.Write(count + " ");
  30.  
  31.                 Console.WriteLine();
  32.             }
  33.            
  34.             Console.ReadKey();
  35.         }
  36.  
  37.         private static List<char[]> Split(string str, int length) // ХЗ ЧТО ЭТО О_О судя по всему переопределние сплита? А что он на выходе вернет?
  38.         {
  39.             var range = new List<char[]>();
  40.             for (int i = 0; i < str.Length; i+=length)
  41.             {
  42.                 var chars = new char[length];
  43.                 for (int j = 0; j < length; j++)
  44.                 {
  45.                     if (str.Length > i + j)
  46.                         chars[j] = str[i+j];
  47.                 }
  48.                 range.Add(chars);
  49.             }
  50.             return range;
  51.         }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.111 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы