我正在使用以下CreateArray静态方法创建一个数组:
public static int[] CreateArray(int size)
{
var ret = new int[size];
ret[0] = 0;
ret[1] = 1;
Parallel.ForEach(Enumerable.Range(2, size - 2), i =>
{
ret[i] = Func(i).Count();
});
return ret;
}
Run Code Online (Sandbox Code Playgroud)
Func的样子:
public static IEnumerable<int> Func(int i)
{
...
}
Run Code Online (Sandbox Code Playgroud)
是否有可能在以下方面重构该CreateArray方法:
public static int[] CreateArray(int size)
{
var tableFromIndex2 = ...
return new[] { 0, 1 }
.Concat(tableFromIndex2)
.ToArray();
}
Run Code Online (Sandbox Code Playgroud)
我认为 PLINQ 在这里可能有用:
var tableFromIndex = ParallelEnumerable.Range(2, size - 2)
.AsOrdered()
.Select(i => Func(i).Count());
return new[] { 0, 1 }
.Concat(tableFromIndex)
.ToArray();
Run Code Online (Sandbox Code Playgroud)