【C#入門】Listの初期化の意味から方法まで分かりやすく徹底解説

C#でListを初期化する意味って?
どうして初期化しないといけないの?

Listを初期化する方法をサンプルコード付きで知りたい!

こんにちは。文系出身のエンジニアで現役8年目になる佐藤です。

皆さんはC#でプログラミングするとき、Listを正しく初期化して扱えていますか? そもそも初期化する意味がわからない……という初心者の方も多いのではないでしょうか。

この記事では、初期化を行う意味からListの初期化方法、その注意点まで一気に解説していきます。

どんなレベルの方にも分かりやすい言葉を使って解説していきますので、まだ始めたばかりで難しい用語に馴染みがない方も安心して最後までご覧ください。

もし「Listが良く分からない……」という方がいらっしゃれば詳しい解説記事がありますのでこちらからご覧ください。

それではさっそく、List初期化の方法と意味を見ていきましょう。

目次

Listを初期化する方法と意味

この章では、Listを初期化する意味から解説して理解を深めていきます。

後半では方法を紹介していますので、概要は分かっているので方法だけ知りたいという方は「基本の初期化」をご覧ください。

「初期化する」とは

List以外にもいろいろなものを「初期化」してC#でプログラミングを行っているかと思いますが、なぜ初期化を行わなければならないのでしょうか?

その理由は、思わぬ値が入ったままプログラムが実行されないようにする為です。思わぬ値がどこかに潜んだままプログラムを実行すると、予期しないエラーの原因になります。

初期化することで、自分で値を設定してしまえばエラーを未然に防げるという訳なんです。

でもC#で値を設定していない変数を参照するとエラーが出るし
わざわざ意識する事でもないのでは?

そう考えますよね。

でもC言語というプログラミング言語ではエラーが出ず、初期化しないと思わぬ値が格納されてしまうんです。エラーが起きる原因になるので、以前はかなり意識して初期化を行っていました。

そこでC#やJavaなどのプログラミング言語では、初期化を促すためコンパイルエラーを出してくれるようになりました。また、変数であれば型によってデフォルト値(例えば、intなら0)で初期化してくれるんです。

今では意識する必要も無くなっているかもしれませんが、意味だけでも頭の片隅に置いておくことをおすすめします!

それでは次は基本の方法を紹介していきます。

基本の初期化

Listの初期化方法はとても簡単です。

List<string> test = new List<string>();

Listに格納する値の型を指定して宣言を行います。

newを使ってオブジェクト自体の初期化を行えば完了です。最後の ( ) には容量を指定することが出来るのですが、指定しないままで問題ありません。ですが、つけ忘れるとエラーになるので忘れないようにしましょう。

値を指定して初期化したい時

stringやintの変数を宣言する時、同時に値も指定して初期化が出来ますよね。

Listでも同じことが出来ます。

List<string> test = new List<string>() { "値1", "値2", "値3" };

例では3つ指定しましたが、それ以上でももちろん可能です。また、値を指定した時には ( ) を省略することが出来ます。

以上が初期化の方法になります。意識せずとも行っていたという方もいらっしゃるかもしれませんね。基本はこの二つを覚えておけば大丈夫なので、どんどん実践で使って行きましょう。

最後に、初期化する時の注意点についてです。

Listを初期化する時の注意点

Listを初期化する時は、newでオブジェクトの初期化を行いました。

これを行わないと、デフォルト値での初期化が行われてしまい中身がnullになってしまいます。

そのままだとエラーになってしまいますので、忘れずに「new」でオブジェクトの初期化を行ってください。また、最後の ( ) も忘れないように記載します。

ちゃんと書いているはずなのにエラーになっている……という場合は、この2点をまずチェックしてみてくださいね。

まとめ

C#でのListの初期化について解説してきました。

Listはよく使う要素です。初期化についてもしっかり理解して実践で使って行きましょう。

それでは次の解説で!

この記事を書いた人

【プロフィール】
DX認定取得事業者に選定されている株式会社SAMURAIのマーケティング・コミュニケーション部が運営。「質の高いIT教育を、すべての人に」をミッションに、IT・プログラミングを学び始めた初学者の方に向け記事を執筆。
累計指導者数4万5,000名以上のプログラミングスクール「侍エンジニア」、累計登録者数1万8,000人以上のオンライン学習サービス「侍テラコヤ」で扱う教材開発のノウハウ、2013年の創業から運営で得た知見に基づき、記事の執筆だけでなく編集・監修も担当しています。
【専門分野】
IT/Web開発/AI・ロボット開発/インフラ開発/ゲーム開発/AI/Webデザイン

目次