私は社内でプラットフォームの強化に取り組んでおり、調査中に、ArrayLists は避けるべきだというコメントを多くの人から見かけました。しかし、彼らはその理由をあまり説明しておらず、なぜ彼らがそんなにひどいのかについての記事を見つけることができません.
4 に答える
「配列リスト」(「ベクター」とも呼ばれる) は、完全に細かいデータ構造です。それArrayList
は、C# では避けるべきクラスです。
その理由は、ジェネリックではないため、object
内部に任意のものを格納でき、型安全性が損なわれるためです。代わりに
使用してください。List<T>
強く型付けされていないためです。何でも収納できるバッグです。つまり、要素を取得するときにキャストする必要があります。また、値の保存と取得にボックス化/ボックス化解除が含まれる場合と含まれない場合があることも意味します。
それらは一般的ではありません。AList
はまったく同じものですが、一般的です。これは、オブジェクトがすべて共通の型であり、その制約がコンパイラによって適用されることを保証していることを意味します。また、値の型のボックス化も回避します。
痛いほどひどいものではありません。それらをリストと考えてください。
そのため、コレクションに一貫性を持たせるために多くのルールを追加し、それらを「どこでも」使用するか、「どこでも」一貫性がないために発生するエラーに対処する必要があります。
余分なコードがたくさんあるように、またはあなたが本当にきつく指を交差させて、「頭の悪い」プログラマーがあなたが対処できない何かをそこに入れないように願っています。
あなたのコレクションが何かで構成されている場合は、それに固執してください.