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

Joa*_*nge 2 .net c# coding-style

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

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

SLa*_*aks 24

像这样:

this.Effects = Array.ConvertAll(image.Effects, e => new Effect(e));
Run Code Online (Sandbox Code Playgroud)

这将比同等的LINQ调用更快,Select并且ToArray可能会在此之后不久回答.


And*_*son 5

Linq会是这样的:

this.Effects = image.Effects.Select(x => new Effect(x)).ToArray();
Run Code Online (Sandbox Code Playgroud)

  • 哈哈@SLaks.好预感.为你+1. (6认同)

Ern*_*rno 5

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

  • 除非`Effect`构造函数非常慢,否则不值得. (2认同)