これまで、メソッド、クラス、インスタンス、カプセル化、プロパティ、継承、オーバーライドなどを順に紹介してきました。今回は、「コレクション」を紹介させていただきます。
【C#入門】クラスとは?役割とVisual Studioでの作り方を紹介
【C#入門】インスタンスとコンストラクタとは?
【C#入門】カプセル化とは?アクセス修飾子の種類と使い方を紹介
【C#入門】プロパティとは?SetとGetを使った書き方をご紹介
コレクションとは
コレクションとは、配列と同じくデータをまとめて扱う仕組みのことです。配列よりも柔軟にデータの追加や削除ができます。
特に、配列では最初に要素数を決めたらそれ以降変更することができません。しかし、コレクションのLIST型を使えば、必要に応じて後から要素数を追加できます。
例えば、食事のカロリーを毎日記録していく場合、データは1日ずつ増えていき、いつ終わるか分かりません。10日で十分のときもあれば、365日でも足りないケースがあります。
そんな時に、あとから要素を追加・削除することができるのが、LIST型の特徴です。
コレクションの種類
コレクションにはいくつか種類があります。
先ほど説明したLIST型や、2つのデータを一組にして格納することができるDictionary型、Stack、Queueなどです。
Stackは最後に追加したデータから順番に値を取り出し、Queueは最初に追加したデータから順番に値を取り出します。
LIST型とは
今回は最も基本的なLIST型の使い方について紹介します。
LIST型の使い方
LISTを使う手順は以下のようになります。
①Collectionが含まれるname spaceを宣言する
②LIST型の変数を作成する
③メソッドで値の操作をする
早速それぞれについて説明させていただきます。
Collectionが含まれるname spaceを宣言
Collectionは様々なデータ群を扱うクラス群です。
name space "System.Collections.Generic" に含まれているので、LISTを使う場合にも下記の通り宣言をする必要があります。
それをしない場合、型または名前空間の名前'List<>'が見つかりませんでしたというエラーメッセージが表示されます。
LIST型の変数を作成
要素はLIST型の変数に入れるため、LIST型の変数を作成します。
もし配列にすると、以下のようになり、要素数を指定する必要があります。
メソッドで値の操作
LIST型の変数に要素を追加や削除する操作を行います。
例えば、LISTに要素を追加する場合は、このように書きます。
また、LISTの要素数は、「変数名.Count」で取得することができます。
LISTで利用できるメソッドは、追加、削除だけでなく他にもたくさんあります。先ほどの追加のメソッドと同様に、「変数名.メソッド名」と記載しましょう。
☆LISTで使えるメソッド☆
下記を覚えておくととても便利です。
メソッド名 | 役割 |
Add(追加する値) | 最後尾に要素を追加 |
Insert(追加位置,追加する値) | 指定した位置に要素を挿入 |
Remove(削除する値) | 指定した値の要素を削除 |
RemoveAt(削除するインデックス) | 指定したインデックスの要素を削除 |
Clrear() | 全ての要素を削除 |
IndexOf(検索する値) | 要素の位置を検索 |
Contains(検索する値) | 要素の有無を調べる |
Sort() | Listを昇順にな並べ変える |
Reverse() | Listを逆純に並べる |
Find() | 指定した値を探し最も小さいインデックスを返す |
Exists() | 指定されたデータと同じものが存在するかを調べる |
プログラム例
以下のプログラムは、カロリーの変数(kcal)に値を追加して、要素の数だけ表示させるという内容になります。
また、インデックスの削除や昇順に並べ替えると以下のようになります。
ひとこと
いかがでしたでしょうか。配列よりもデータの操作がしやすいので、使い勝手が良いことが分かります。
今回の説明は「確かな力が身につくC# 「超」入門」を参考にさせていただきましたが(例題はオリジナルです)、「もっと前から読んでおきたかった!」と痛感しています、、。もし、C#について学び始めたという方は是非参考にしてみてください!(2020年7月に出版された新書です(^^)
他にも、C#関連の記事を書いていますので是非参考にしてください!
【C#入門】クラスとは?役割とVisual Studioでの作り方を紹介
【C#入門】インスタンスとコンストラクタとは?
【C#入門】カプセル化とは?アクセス修飾子の種類と使い方を紹介
【C#入門】プロパティとは?SetとGetを使った書き方をご紹介