Если Fusion E450 катит, то кидайте свой тест сюда. Замеряем время. Только не забудьте сказать версию нета.
namespace TestCopy
{
public sealed class ArrayString
{
private long[] array;
private int length;
public ArrayString (int length)
{
this.length = length;
this.array = new long[length + 10000];
for (int k = 0; k < length; k++)
{
this.array[k] = k;
}
}
public void Insert (int position, long value)
{
System.Array.Copy(this.array, position, this.array, position + 1, this.length);
this.length++;
this.array[position] = value;
}
}
class Program
{
static void Main (string[] args)
{
ArrayString x = new ArrayString(1000000);
const int K = 1000;
System.DateTime t0 = System.DateTime.UtcNow;
for (int k = 0; k < K; k++)
{
x.Insert(0, 42);
}
System.DateTime t1 = System.DateTime.UtcNow;
double dt = 1000000 * (t1 - t0).TotalSeconds / K;
System.Console.WriteLine("dt = {0} microseconds", dt);
System.Console.ReadLine();
}
}
}
Во вложении проект и бинарь для .Net 3.5