Что является результатом этого алгоритма? Извиняюсь, если я глупый, что не получил его.
Кажется, что он идентифицирует все элементы в itemList, минутное значение которого делится на 15, затем добавляет его числовое значение в счетчик хода и затем добавляет этот счетчик хода в этот объект Aggregates.
Поскольку я не совсем понимаю типы некоторых из этих объектов, я немного размышляю о том, что на самом деле здесь происходит. Кажется, вы агрегируете один раз с «aggregateData + = item.number», а затем агрегируете СНОВА с «Aggregates.Add (aggregateData)». Вы уверены, что не суммируете эти суммы дважды? Мне даже неясно, пытаетесь ли вы суммировать значения подходящих предметов или составить их список.
Кроме того, определенно не обязательно или не оптимально просматривать весь список из 1 миллиона предметов 24 * 4 раза, но я не могу быть уверен, что правильно, без более ясного понимания цели.
Как указано в других ответах, правильный подход, скорее всего, будет повторять элемент itemList ровно один раз и работать с каждым отдельным элементом, а не повторяться ~ 100 раз и отбрасывать каждый элемент в списке ~ 99 раз (поскольку вы знаете, что это может претендовать только на одну из ~ 100 итераций).