‫そして､ このレッスンでは､ C-sharpの最も重要なトピックの1つである､ ジェネリックと非ジェネリックコレクションについて学びます｡
‫そこでまず､ コレクションが配列のようなものであることを理解する必要があります｡
‫コレクションは､ 同時に多くのオブジェクトを格納するために使用できるクラスであり､ オブジェクトのコレクションであるため､
‫コレクションと呼ばれています｡
‫コレクションは配列と異なり､ 1種類のオブジェクトに限定されることはない｡
‫その代わり､ コレクションには､ 好きなだけ多くの種類のオブジェクトを格納することができる｡
‫また､ コレクションはレースなどのようにサイズが固定されているわけではありません｡
‫その長さによって､ 要素をどんどん追加していき､ コレクションの大きさを調整していくことができるのです｡
‫この場合､ lengthではなくcountと呼ばれ､ その使い方を確認します｡
‫では､ なぜコレクションが必要なのでしょうか｡
‫例えば､ ある学校の出席管理システムを構築しているとき､ 時間経過とともに生徒を動的にシステムに追加する場合を考えてみましょう｡
‫studentクラスを定義し､ student型のオブジェクトを作成し始めると､ ある問題に直面することになります｡
‫配列に格納するのはいくつかの理由から良くないが､ どうやって格納するのだろう？
‫まず､ 配列はサイズが決まっているので､ 500人の生徒の配列を作ったら､ それ以上は持てない｡
‫次に､ 教師や従業員など､ 他の種類のオブジェクトをシステムに追加することになったらどうでしょうか｡
‫さて､ 配列はサイズが固定で､ 1つの型しか受け入れないので､ コレクションを使って問題を解決することができます｡
‫そこで私たちは､ オブジェクトのグループをより効率的に保存､ 管理､ 操作するために､ それらを使用しています｡
‫だから､ コレクションはグループ内で多くの操作を行うために使用できる｡
‫例えば､ オブジェクトの追加､ 削除､ 入れ替え､ 特定のオブジェクトの検索､ さらにはオブジェクトのコピーなどです｡
‫つまり､ 2つの異なるタイプのコレクションがあります｡ 非汎用コレクションは､ あらゆるタイプのオブジェクトを格納するために使用でき､
‫これらはネームスペースのシステムコレクションの中にあります｡
‫そして､ 1種類のオブジェクトに限定されたジェネリックコレクションがあります｡
‫ですから､ 保存したいオブジェクトの種類が異なる必要がないことが確認できたら､ それらを使用します｡
‫そして､ それらはsystem dot collections dot genericに配置されています｡
‫では､ その名前空間の中で､ 非汎用コレクションについて､ いくつかの例を見てみましょう｡
‫ここで､ int num equal one is five, そして float num two is 315 string name is
‫for example Dennis そして､ 新しい配列リスト､ 私の配列リストを作成し､ それに
‫num one を追加し､ num two を追加し､ 名前を追加することができます｡
‫つまり､ 非汎用であることがわかるので､ さまざまなタイプを使うことができます｡
‫つまり､ 一方の型は整数で､ もう一方の型は浮動小数点だったのです｡
‫つまり､ 2番はfloatで､ 名前は文字列だったんですね｡
‫だから､ それらをすべて配列のリストに追加すればいいのです｡
‫タイプが違うんです｡
‫つまり､ リストに追加するために､ ADD方式を採用しているわけです｡
‫これで､ 以前話していた､ コピー､ 削除､ 置換などのメソッドが使えるようになりました｡
‫配列リストは非汎用的なコレクションなので､ ここでもこの配列リストでも使うことができます｡
‫そして､ for eachメソッドを使って､ 配列リストのすべての要素を調べることができます｡
‫つまり､ 配列リストの中の要素は､ ある特定の型に属しているわけではないのです｡
‫配列リストにはオブジェクト要素が必要ですが､ floatやstringもあるのでintは使えません｡
‫無垢の文字列もあるので､ floatは使えません｡
‫そのため､ あらゆる種類の型を許容する､ 非常に一般的な型であるオブジェクトを使用しているのです｡
‫オブジェクト型は､ 基本的に他のすべての型を取り込んでいます｡
‫では次に､ ジェネリックコレクションについて見てみましょう｡
‫これは､ 動物1､ 動物2､ 動物3と､ タイプリストから外れるわけです｡
‫そして､ それをマイリストと呼ぶことにします｡
‫つまり､ このリストには文字列しか格納できないことがわかります｡
‫そこで､ この文字列リストを作成します｡
‫また､ リストは汎用的なコレクションであるため､ 実際には1種類のオブジェクトしか保持できません｡
‫だから､ そのリストを定義するときに､ その型を指定しなければならない｡
‫そこで､ ここでは文字列型を指定しています｡
‫そのため､ 渡すデータ､ 保存するデータ､ 格納するデータは､ 角括弧で型を指定した文字列のみとなります｡
‫この場合､ このように角括弧の文字列が表示されます｡
‫ですから､ 技術的には､ 私のリストは､ リスト型､ 文字列型､ この章の今後のビデオのコレクションであると言うことになります｡
‫ここでは､ さまざまなタイプの汎用コレクションと非汎用コレクションを取り上げ､ それぞれの利点と､
‫いつ､ どのように使用するかを説明します｡
‫というわけで､ 2つのトピックについて､ ごく簡単に紹介しました｡
‫これからたくさんの例を見て､ もっとはっきりさせるつもりです｡
‫わかりました｡
‫それでは､ 次のビデオでお会いしましょう｡