Недавно я работал над некоторым кодом и наткнулся на метод с 3 циклами for, который работал на 2 разных массивах.
По сути, то, что происходило, заключалось в том, что цикл foreach будет проходить через вектор и преобразовывать DateTime из объекта, а затем другой цикл foreach будет преобразовывать длинное значение из объекта. Каждый из этих циклов будет хранить преобразованное значение в списках.
Последний цикл будет проходить через эти два списка и сохранять эти значения в еще одном списке, потому что необходимо выполнить одно окончательное преобразование для даты.
Затем, после всего, что сказано и сделано, два последних списка преобразуются в массив с помощью ToArray ().
Хорошо, терпите меня, я наконец-то дошел до своего вопроса.
Итак, я решил сделать один цикл for, чтобы заменить первые два цикла foreach и преобразовать значения одним махом (третий цикл квази-необходим, хотя, я уверен, что с некоторыми работами я мог бы также поставить это в один цикл).
Но затем я прочитал статью Густава Дуарте «Что делает ваш компьютер, пока вы ждете», и начал размышлять об управлении памятью и о том, что делают данные, когда к ним обращаются в цикле for, где два списка доступны одновременно.
Итак, мой вопрос, каков наилучший подход для чего-то подобного? Попробуйте сжать циклы for так, чтобы это происходило как можно меньше, вызывая множественный доступ к данным для разных списков. Или разрешить несколько циклов и позволить системе вводить ожидаемые данные. Эти списки и массивы могут быть потенциально большими и циклически проходить через 3 списка, возможно, 4 в зависимости от того, как реализован ToArray (), может оказаться очень дорогостоящим (O (n ^ 3) ??). Но из того, что я понял в указанной статье и из моих классов CS, необходимость извлечения данных тоже может быть дорогой.
Кто-нибудь хотел бы предоставить какое-либо понимание? Или я полностью ушел из своего рокера и мне нужно заново учить то, что я неучил?
Спасибо