Размер массива объекта исключения OutofMemory
Я пытаюсь записать данные электронной таблицы в двухмерный массив. Я пользуюсь VSTO.
int rc = 1048576;
int cc = 1638;
string[,] arr = new string[rc, cc];
Последняя строка выдает исключение Out of Memory. Я хотел бы показать сообщение, сообщающее пользователю только «X»; элементы могут быть захвачены.
Проверено MSDN и существует ограничение числа строк в 16 777 216. Нет ограничений по количеству столбцов для данных. Не могу найти предел либо для 2D-массива.
Моя проблема не с тем, ПОЧЕМУ исключение. То, что я ищу, - это если вы занимаетесь разработкой VSTO и вам нужно было записать лист в DataTable для выполнения соединений в памяти и т. Д., Вам нужно будет сделать следующее:
string[,] arr = new string[rc, cc];
Microsoft.Office.Interop.Excel.Range selection
arr = selection.Value as string[,];
а затем скопировать данные из этого массива в Dataatable. Теперь, какой будет идеальный предел для количества элементов, которые должен выбрать пользователь. Так что я могу установить, что rowcount / columncount lmits и отображать сообщение, когда выбор превышает этот критерий.