次のコードを使用して、文字列配列をコピーするための最速の方法を見つけようとしました。
static void Main(string[] args)
{
Stopwatch copy = new Stopwatch();
Stopwatch copyTo = new Stopwatch();
Stopwatch direct = new Stopwatch();
Stopwatch clone = new Stopwatch();
string[] animals = new string[1000];
animals[0] = "dog";
animals[1] = "cat";
animals[2] = "mouse";
animals[3] = "sheep";
for (int i = 4; i < 1000; i++)
{
animals[i] = "animal";
}
copy.Start();
string[] copyAnimals = new string[animals.Length];
Array.Copy(animals, copyAnimals, animals.Length);
copy.Stop();
Console.WriteLine("Copy: " + copy.Elapsed);
copyTo.Start();
string[] copyToAnimals = new string[animals.Length];
animals.CopyTo(copyToAnimals, 0);
copyTo.Stop();
Console.WriteLine("Copy to: " + copyTo.Elapsed);
direct.Start();
string[] directAnimals = new string[animals.Length];
directAnimals = animals;
direct.Stop();
Console.WriteLine("Directly: " + direct.Elapsed);
clone.Start();
string[] cloneAnimals = (string[])animals.Clone();
clone.Stop();
Console.WriteLine("Clone: " + clone.Elapsed);
}
ほとんどの場合、最速のランキングは CopyTo()、Clone()、Directly、Copy() ですが、完全に一貫しているわけではありません。あなたの経験は何ですか?最もよく使用するのはどれですか。その理由は何ですか。