更优雅的方式来编写这个C#循环代码?

时间:2011-01-17 19:45:54

标签: c# .net coding-style

我必须为不同的成员进行这些类型的初始化:

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

3 个答案:

答案 0 :(得分:24)

像这样:

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

这比使用SelectToArray的等效LINQ调用更快,这可能会在此后不久回答。

答案 1 :(得分:5)

Linq会是这样的:

this.Effects = image.Effects.Select(x => new Effect(x)).ToArray();

答案 2 :(得分:5)

或者使用Parallel.For来使用多个线程。