C#リストは高速ですか?オブジェクトを扱うためにリストを使うことの良い点と悪い点は何ですか?C#リストの速度
リストを広範囲に使用すると、ソフトウェアの速度が低下しますか? C#のリストの代替案は何ですか?
リストに「オブジェクトが多すぎます」というオブジェクトの数はいくつですか?
C#リストは高速ですか?オブジェクトを扱うためにリストを使うことの良い点と悪い点は何ですか?C#リストの速度
リストを広範囲に使用すると、ソフトウェアの速度が低下しますか? C#のリストの代替案は何ですか?
リストに「オブジェクトが多すぎます」というオブジェクトの数はいくつですか?
List<T>
は、アイテムを保持するための補助配列を使用しています。
リストをかなり広く使用することは大丈夫です。リストの作成を開始するときに最終的なサイズが分かっている場合は、リサイズを避けるために容量を指定できるコンストラクタを使用することをお勧めします。それを超えて:あなたが関心があるならば、プロファイラを打ち破ってください...
ブライアンはそれを修正しました - ありがとうブライアン:) –
"最後に追加" O(1)の累積コストがあります –
@トーマス:はい、これを言及します。 –
何に比べて?
List<T>
を意味する場合、それは基本的に配列のラッパーです。インデックスによって読み書きするのが速く、は比較的遅く(最後に余分なスペースがあり、必要に応じてサイズが倍増するため)、最後から削除しますが、他の操作を行うには高価です終わり)Dictionary<,>
などがキーすることにより、より良いアクセスリストは、本質的に遅いではありません提供します。特に、すべてのデータを常に見る必要があるか、インデックスでアクセスできることがわかっている場合は特にそうです。しかし、大きなリストの場合は、キーを使用して検索するほうが便利です(さらに便利です)。 .NETには様々な辞書実装があり、それぞれのコストとサイズが異なります。
本当にあなたがそれらで何をしたいかによって異なります。 – LukeH
"Fast"と "slow"は無関係です。関連性は「顧客のために十分に速い」と「顧客にとっては遅すぎる」です。あなたの最初の質問は「リストは十分に速いのですか?あなたはあなたの顧客が誰で、そのパフォーマンス要件が何であるかを知っている唯一の人なので、あなただけがその質問に答えることができます。意味のあるベンチマークを試し、あなたの慎重に述べた実際の顧客に焦点を当てた目標と比較することで答えます。 –