Я следовал этомудекартово произведение динамического массива с помощью LINQ в C# перекидной OutOfMemory исключения
http://blogs.msdn.com/b/ericlippert/archive/2010/06/28/computing-a-cartesian-product-with-linq.aspx
и создал динамический запрос Linq для вычисления декартово произведения.
У меня есть 10 элементов массива, в каждом из которых есть 100 предметов.
A[100] B[100] C[100] . . . J[100]
Когда я пытаюсь вычислить декартово произведение моего А до J массива, я получаю OutOfMemoryException.
Я уверен, что кто-то уже столкнулся с подобной проблемой. Было бы здорово, если бы вы могли предоставить мне решение этой проблемы.
Похоже, вы могли бы иметь 100^10 матчей, что примерно на 46,6 * миллиарда раз больше, чем int.MaxValue, например. –
Да, я понял, я фактически сохранял результат комбинации в списке, который вызвал это исключение из-за исключения. Вместо того, чтобы хранить всю комбинацию, я сделал следующее, для каждой комбинации 10000 я беру лучший (на основе моей бизнес-логики), храня его в другом списке и очищая список комбинаций, это помогло мне решить мою проблему. – Esen