昨日に引き続きコレクションの話なの、とC#たんはC#たんは前振りしてみる。 今日はコレクションの中身がどうなっているか、実装についてです、とC#たんはC#たんは説明してみたり。 配列リスト 個数不定のデータを持つための一番手っ取り早い方法は、事前に配列を確保しておいて、状況に応じて確保しなおす方法です。 List<T>やStack<T>で内部的にやってることはほぼこれだけです。その他のコレクションでも、この手の仕組みはよく使います。 要は、配列と、実際に何個目まで要素が詰まっているかを表す変数countを持ちます。 要素を追加するたびに、countを増やします。 配列がいっぱいになったら、新しい配列を確保して要素をコピーします。 要素のコピーはそれなりに高負荷なので、要素の最大数がだいたいわかってる場合は、事前に確保する配列の長さをコンストラクターに渡しておきます(capacity引数)。