【发布时间】:2012-12-08 11:15:15
【问题描述】:
基本上我想知道是否有比下面显示的更有效的代码
private static int[] GetDefaultSeriesArray(int size, int value)
{
int[] result = new int[size];
for (int i = 0; i < size; i++)
{
result[i] = value;
}
return result;
}
其中大小可以从 10 到 150000 不等。对于小型数组不是问题,但应该有更好的方法来完成上述操作。 我正在使用 VS2010(.NET 4.0)
【问题讨论】:
-
您将
value设置为数组的所有字段? -
是的,他正在将每个元素设置为非默认 int 值——这可能是除了微优化之外最快的方法(毫无疑问,有人会展示一些微优化技术)
-
不管怎么做,在C#中用非默认值初始化数组都是O(N)操作。
-
@PaulSullivan 您可以从有效的并行化中获得不平凡的改进。
-
只有微优化是在for循环中++i