Я должен выполнить все виды инициализации для разных членов:
this.Effects = new Effect [ image.Effects ]; for ( int i = 0; i < image.NumEffects; ++i ) { this.Effects [ i ] = new Effect ( image.Effects [ i ] ); }
Как это:
this.Effects = Array.ConvertAll(image.Effects, e => new Effect(e));
Это будет быстрее, чем эквивалентные вызовы LINQ с Select и ToArray, на которые, вероятно, будет дан ответ вскоре после этого.
Select
ToArray
Или используйте Parallel.For для использования нескольких потоков.
Parallel.For
Линк будет примерно таким:
this.Effects = image.Effects.Select(x => new Effect(x)).ToArray();