C#のArray.ConvertAllについてのメモ
配列に対して特定の処理をする場合Array.ConvertAllを使用すると
上手く処理出来るが、LINQのSelectと比べると処理速度で見劣りがします。
しかし、LINQの方ははSelect後にToArrayなどを行うと結果としてArray.ConvertAllより遅くなるのでどうしたものか。
static void Main(string[] args) { string[] fizz = createFizz(); System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch(); sw.Start(); string[] buzz2 = Array.ConvertAll(fizz, fruit => fruit.Substring(0, 2)); sw.Stop(); Console.WriteLine(sw.Elapsed); sw.Reset(); sw.Start(); var buzz1 = fizz.Select((fiz) => fiz.Substring(0, 2)); sw.Stop(); Console.WriteLine(sw.Elapsed); Console.ReadKey(); } static string[] createFizz() { List<string> list = new List<string>(); int seed = Environment.TickCount; for (int i = 0; i < 1000000; i++) { Random rnd = new Random(seed++); for (int j = 0; j < 10; j++) { list.Add(rnd.Next(10, 100).ToString()); } } return list.ToArray(); }