背景:数値のグループで数学計算を実行するのを支援するために、独自の「ベクトル」クラスを作成しようとしています。必要な機能を実現するために、算術演算子(+-* /)をオーバーロードしています。最初は、クラスでプライベート配列を使用してから、IEnumerable<T>
インターフェイスを実装しました。その後、クラスを継承することを考えましList<T>
たが、いくつかの記事を読んだ後、Collection<T>
代わりに使用する必要があることを理解しました。「Vector」オブジェクトにデータを入力するときは、パフォーマンスが非常に重要であることに注意してください。
質問:この方法はどのように機能しCollection<T>.Add()
ますか?List<T>.Add()
ドキュメントは非常に明確です:
CountがすでにCapacityと等しい場合、リストの容量は内部配列を自動的に再割り当てすることによって増加し、新しい要素が追加される前に既存の要素が新しい配列にコピーされます。
ただし、Collection<T>.Add()
ドキュメントには、その動作については何も記載されていません。基本クラスとして使用したときは、プロパティにList<T>
アクセスでき、メソッドを使用する前にサイズを指定できました。ただし、プロパティがありません---これが私が質問している理由です。繰り返しますが、パフォーマンスは非常に重要です。Capacity
Add()
Collection<T>
Capacity
パフォーマンスが問題になるので、おそらくプライベート配列の使用とインターフェイスの実装に戻る必要がありIEnumerable<T>
ます。どう思いますか?