Я часто использую этот контрольный список для оценки вопросов, подобных вашему:
- Сделайте это правильно
- Проясни это
- Сделайте это лаконичным
- Сделайте это эффективным
List<Grid_Heading_Blk>
является далеко более показательным для намерений, чем ArrayList
. Так что, даже не принимая во внимание эффективность, уже есть большой выигрыш для пункта 2.
Чтобы преобразовать ArrayList
в List<>
, необходимо выполнить итерацию по ArrayList
один раз и привести каждый элемент. foreach
выполняет неявное приведение, поэтому накладные расходы относятся только к дополнительной итерации.
Итерация последовательности дважды приводит к повышению производительности с O(n)
до O(2n)
, который по-прежнему равен O(n)
(величина, а не значение, имеет значение для производительности). Таким образом, вы можете считать изменение благоприятным.
Однако, если буквально все , которые вы делаете, запускают foreach
, вы должны просто использовать ArrayList
напрямую - изменение его на List<>
не дает вам больше выразительной силы.