1. ホーム
  2. .net

[解決済み】ArrayとList<T>の比較。いつどちらを使うか?

2022-04-28 10:55:59

質問

MyClass[] array;
List<MyClass> list;

どちらか一方を選んだ方が良い場合とは、どのような場合でしょうか?また、その理由は?

解決方法は?

現実には、配列を使いたいと思うことは稀です。絶対に List<T> 配列のサイズを変更すると高くつくので、データを追加/削除するときは常にこのようにしてください。もしデータが固定長であることが分かっていて、ある種のマイクロ最適化を行いたい場合 非常に特殊 ベンチマークを行った結果)、配列は有用かもしれません。

List<T> が提供しています。 ロット は配列よりも多くの機能を持ち(LINQはそれを少し均等化しますが)、ほとんどの場合正しい選択です。ただし params の引数は、もちろんです;-p

カウンターとして - List<T> は一次元であり、一方、長方形(など)の配列は int[,] または string[,,] - が、このようなデータを(必要であれば)オブジェクトモデルでモデル化する方法は他にもあります。

こちらもご覧ください。

とはいえ、私が作るのは ロット での配列の利用は プロトブーフネット プロジェクトで、完全にパフォーマンスのためです。

  • はビットシフトを多用するので byte[] はエンコードにかなり必須です。
  • 私はローカルローリングを使っています byte[] バッファを満たし、それをストリームに送る(そしてv.v.)。 BufferedStream などです。
  • は、内部でオブジェクトの配列ベースのモデル ( Foo[] よりも List<Foo> というのも、一度構築するとサイズが固定され、非常に高速である必要があるからです。

しかし、これは間違いなく例外であり、一般的な業務処理であれば List<T> いつも勝っている。