array、生成はどちらが速い?TL;DR性能が欲しけりゃ配列を使え。コレクションの使い方次第。あと、内包表記は安易に使うな。はじめにきっかけは、ふとした疑問からでした。https://twitter.com/gab_km/status/469141980543340545ちょうど速度的な性能についてあれこれ企てているところで、このツイートもそうした背景からのものでした。測定せよ性能の話は、やはり測定して見るところから始めるべきだと思います。次のような測定関数を書いてみました。sw.Elapsed.ToString()これで、配列とリストで次のような処理を5回ずつ流してみます。気持ち配列の方が早いかなー、というくらい。すると、結果は歴然でした。なり、差が広がったのです。再計測と、ここでキャミバ先生から教育的指導が入りました。https://twitter.com/camloeba/status/469361276167000064はい、すみませんでした...。いうことで、内包表記を使わない方法で再計測してみます(結果は測定5回分の平均)。2.17026[s]速い、速過ぎる。内包表記とは一体何だったのか(糖衣構文です)。言え、こっちでも配列の方が2倍速いですし、速度が要求されるような場合は配列の使用を検討した方がいいでしょう。本当に?しかし、配列って要素数固定のコレクションなので、要素の追加・削除が頻繁にあるような操作には向いていません。コレクションたちを使うという場合もあるかもしれません。コードの読みやすさ・書きやすさと、パフォーマンスその他、トレードオフをよく検討して選びたいものです。