MyClass[] array;
List<MyClass> list;
どちらか一方が他方よりも好ましいシナリオとはどのようなものでしょうか? また、その理由は何でしょうか?
ベストアンサー1
実際には、配列を使用する必要はほとんどありません。List<T>
配列のサイズ変更はコストがかかるため、データを追加/削除する場合は必ず を使用してください。データが固定長であることがわかっていて、ベンチマーク後に何らかの非常に特殊な理由でマイクロ最適化を行う場合は、配列が役立つ場合があります。
List<T>
配列よりもはるかに多くの機能を提供します (ただし、LINQ はそれを少し均等にします)。そして、ほとんどの場合、正しい選択です。もちろん、引数を除いて。params
;-p
反対に、-は 1 次元です。一方、- には、またはList<T>
のような長方形 (など) の配列がありますが、オブジェクト モデルでそのようなデータをモデル化する他の方法もあります (必要な場合)。int[,]
string[,,]
参照:
とはいえ、私は配列を多用していますプロトバッファネットプロジェクト; 完全にパフォーマンスのため:
- ビットシフトを多用するため、
byte[]
エンコードには が不可欠です。 byte[]
基礎となるストリーム (および vv) に送信する前に埋めるローカル ローリング バッファーを使用します。BufferedStream
などよりも高速です。- 一度構築されるとサイズが固定され、非常に高速である必要があるため、内部的にはオブジェクトの配列ベースのモデル (
Foo[]
ではなく) を使用します。List<Foo>
しかし、これは間違いなく例外です。一般的な基幹業務処理では、 がList<T>
常に勝ります。