Как я могу решить исключение нехватки памяти в общем списке? - PullRequest
1 голос
/ 18 июня 2010

Как решить проблему нехватки памяти в общем списке при добавлении нового значения

  foreach(DataColumn dc in dTable.Columns)
                foreach (DataRow dr in dTable.Rows)
                    myScriptCellsCount.MyCellsCharactersCount.Add(dr[dc].ToString().Length);

MyBase Class:

    public class MyExcelSheetsCells
    {
        public List<int> MyCellsCharactersCount { get; set; }

        public MyExcelSheetsCells()
        {
            MyCellsCharactersCount = new List<int>();
        }

    }

Ответы [ 2 ]

2 голосов
/ 18 июня 2010

Используйте меньше строк и столбцов. Прямо сейчас вы создаете новую запись в MyCellsCharacterCount для количества строк, умноженного на количество столбцов, которое может довольно легко превысить объем доступной памяти, если у вас много данных.

0 голосов
/ 18 июня 2010

Если ваша таблица просто слишком велика для данных строки столбца *, возможно, выполнение любой значимой операции / агрегации, за которой вы работаете (avg, sum, min, max и т. Д.), Было бы лучше, чем простое сохранение по отдельности.

По сути, получите сводный вид вместо подробного.

По вашему примеру, у меня нет возможности угадать, что вам нужно, поскольку то, что вы показываете, просто хранит количество символов в столбцах.

Ответ JS Bangs дает вам причину, но никто из нас не может дать вам ответ на ваш вопрос без дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...