Более элегантный способ написать этот код цикла C #? - PullRequest
2 голосов
/ 17 января 2011

Я должен выполнить все виды инициализации для разных членов:

this.Effects = new Effect [ image.Effects ];
for ( int i = 0; i < image.NumEffects; ++i )
{
    this.Effects [ i ] = new Effect ( image.Effects [ i ] );
}

Ответы [ 3 ]

24 голосов
/ 17 января 2011

Как это:

this.Effects = Array.ConvertAll(image.Effects, e => new Effect(e));

Это будет быстрее, чем эквивалентные вызовы LINQ с Select и ToArray, на которые, вероятно, будет дан ответ вскоре после этого.

5 голосов
/ 17 января 2011

Или используйте Parallel.For для использования нескольких потоков.

5 голосов
/ 17 января 2011

Линк будет примерно таким:

this.Effects = image.Effects.Select(x => new Effect(x)).ToArray();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...