C#

【C#】Listに要素を追加/挿入する方法とは?

こんにちは、リバティエンジニア[?]のFUNAです。 現役エンジニアとしてアプリケーション開発やWeb制作、SEOやブログ運営をしています。

今回は数あるコレクションの中でも、
最もよく使うといっても過言ではない"System.Collections.Generic.List<T>"について、
List<T>オブジェクトに要素を追加する方法を整理し、解説していきます。

まとめて要素を追加したり、任意の場所に挿入したり、実は多くのバリエーションがあるので今回はその[追加/挿入]について見ていきましょう。

C# Listとは?

まずはこのC#におけるList<T>について、簡単に説明します。

IT博士
IT博士

C#には配列と似ている機能のひとつに、「List」と呼ばれる概念があります。このListは配列とは違い、動的に要素の追加や削除ができますよ。

なるほど。動的に追加や削除ができるということは、いろいろなことに使えそうですね!

従来まで使ってきた通常の配列では、使用前にサイズを指定する必要があり、アプリ実行中の状況に応じて必要なサイズが増えたり、減ったりする場合には、 どの程度のサイズを指定しておいたらいいのか困ってしまうことがあります。

あらかじめ指定したサイズが少ないと足りなってしまい、どうすることもできなくなります。
かといって、大きなサイズを指定すると余ってしまった分のメモリが無駄で、場合によってはそのせいでパフォーマンスが低下することもあるんです。
IT博士
IT博士

その点では、動的配列である List を使うことで、アプリ実行中でも必要に応じて配列のサイズを増減させることができるので便利なんです。

でも扱い方とか便利でも、むずかしそうですね。。。

IT博士
IT博士

そうでもないですよ♪
i 番目の要素にアクセスするには [i] で参照できますし、使い方も通常の配列とほとんど同じで、最低限のことだけ覚えれば便利な配列として使えます!

C# Listに要素を追加

なんとなくListについて便利だな。と内容が分かってきたところで早速本題に入ります!

Listへの要素の追加方法は、大きく分けて3通りあります。

  1. 初期化時に要素を与える方法
  2. Addメソッド/AddRangeメソッドを使って末尾に追加する方法
  3. Insertメソッド/InsertRangeメソッドを使って任意の場所に挿入する方法

この3つですね。順番に説明していきますね。

初期化時に要素を与える方法

では、まず最初に初期化の際に要素を与える方法についてみていきましょう。
この方法については、初期化時に与える要素をコレクションを渡してやる方法とそのまま初期値を書く方法の2つをご紹介します。

// コンストラクタに既存のコレクションを与える方法
IEnumerable<string> anotherCollection = ……省略……;
var list1 = new list<string>(anotherCollection);

// 初期化と一緒に初期値を書く方法
var list2 = new List<string>{ "value1", "value2", "value3"};

今回は、staring型(文字列型)を格納しましたが、ここは任意の型にしてくださいね。
このListへの要素の追加方法はシンプルで、配列の時と似ているので問題ないとおもいます。

Add / AddRangeメソッドを使って末尾に追加する方法

ここからが配列ではなく、Listを使うことによるメリットです。
Listオブジェクトに要素を末尾に追加していきます。

// Add/AddRangeメソッドを使う方法
var list = new List<string>();
// 末尾に要素を追加
list.Add("value1");

// 末尾に複数の要素を追加
IEnumerable<string> anotherCollection =……省略……;
list.AddRange(anotherCollection);

こちらも実際にやってみると、とてもシンプルで簡単なことがわかると思います。
Addメソッドは引数で追加する要素を指定するだけで、AddRangeメソッドも複数の要素の入ったコレクション(anotherCollecyion)を引数で指定するだけです。

IT博士
IT博士

AddRangeメソッドを使うことで、Listを要素に持つListを保持することなんかもできますよ♪

Insert / InsertRangeメソッドを使って任意の場所に挿入する方法

最後に、すでにあるListの好きな場所に要素を挿入する方法を見ていきましょう!

// Insert/InsertRangeメソッドを使う方法
var list = new List<string>();

// 先頭に"value1"を挿入
list.Insert(0, "value1");

// 末尾に"value2"を追加
int count = list.Count; // Listの要素数を取得
list.Insert(count, "value2");

// 3番目から複数要素(anotherCollection)を挿入
IEnumerable<string> anotherCollection =……省略……;
list.InsertRange(2, anotherCollection);

このようにInsertメソッドを使うことで、第一引数に挿入する要素目を、第二引数に挿入する値をしていするだけです。

InsertRangeメソッドでは、第一引数に挿入する要素目を、第二引数に挿入するコレクション(anotherCollectin)を指定しています。

まとめ

今回は、"System.Collections.Generic.List<T>"について、List<T>オブジェクトに要素を追加する方法をみていきました。

おさらいすると、追加や挿入する方法は3つ。

  1. 初期化時に要素を与える方法
  2. Addメソッド/AddRangeメソッドを使って末尾に追加する方法
  3. Insertメソッド/InsertRangeメソッドを使って任意の場所に挿入する方法

これは押さえておきましょう!

【結論】未経験でプログラミングの独学はぜんぜん可能

List<T>は使えるととても便利です。今回は追加/挿入しかしていませんが、ほかにもできることはたくさんあるので、またの機会に紹介していきますね!

Listコレクションの要素を削除する方法をまとめた記事があるので良かったら参考にしてみてください。

https://itthestudy.com-list-delete/


 

Kindle Unlimitedで無料で本が読める

 

Kindle Unlimitedを無料で試す

 

なら最初の30日間は無料でコーディング・デザイン・ブログ・英語・Youtubeの参考書・キャリア・副業・マーケティング・漫画・美容知識・雑誌などが読み放題です。

人気の本もあるので是非お試ししてみてください!30日以内に解約すればお金は全くかかりません。

 


最近の投稿

【今すぐ行動しよう】フリーランスエンジニアとブログの相性は抜群!

フリーランスエンジニアがスキルや経験から得たビジネスノウハウを共有する手段として「ブログ」は非常におすすめです。自身のスキルや知識のアウトプットや、実際に自分が経験したことを共有して同じような境遇の人の手助けになるような情報を公開することで自分に帰ってくるメリットは非常に多いです。今回はそのあたりについて紹介していきます。

【経験談】フリーランスのエンジニアは本当に大変なの?安定のコツやポイント

フリーランスのエンジニアは「大変だからやめとけ」という話をよく聞くので、そのことについて現役でフリーランスエンジニアとして生活している私が、その話の実態を解説しようと思います。フリーランスエンジニアの大変なところはもちろんありますが、それ以上にメリットが多いので私個人的には非常におすすめしています。

【幸福度UP】フリーランスエンジニアの「田舎暮らし」実現できます

フリーランスエンジニアとして田舎で暮らす人が増えてるって聞くけど、本当なのかな?どうやったら実現できるのか?今回はフリーランスエンジニアとして田舎で生活をしたいという方向けに、実現可能なのか、実現するにはどうすれば良いのかをご紹介します。

【単価交渉で収入アップ】フリーランスが単価交渉を成功させる4つのポイント

フリーランスが収入をアップさせるための重要な手段のひとつに「単価交渉」があります。今回は、現役でフリーランスとしてエンジニアをしている私が実践して効果のあった単価交渉の方法やコツをご紹介します。

【 今なら無料!】タスク管理ツール「Backlog」を無料で使う方法と手順

今回は、普段のタスク管理からプロジェクトの管理まで幅広く使えるツール「Backlog」を無料で使うための方法とその手段を画像つきで紹介しました。もし気に入らなければ、期間内に解約してしまえば費用はかかりません。また、以外と知られていない「フリープラン」も紹介しているので、是非参考にしてみてください。

Copyright© FUNA BLOG , 2021 All Rights Reserved.