パソコン風景

C#の配列Listの使い方1

この内容は NBUゆるゆるかれんだー Advent Calendar 2019 12/20 の記事でもあります。

はい、みなさん、こんにちは!
早速今回は、今勉強中である「C#のListの使い方」について書いていきたいと思います!

まだまだ浅学なため,よくわかんないなとか思ったりするかもしれませんがまあこれは備忘録代わりですのでそこは申し訳ないです...


「配列」の使い方!

とりあえず配列について軽く説明したいと思います!
配列では最初に配列の箱の数を宣言したら、その中に中身を入れていきます。
例えば「0 から 9」までの箱(合計10個)の中に「あ、い、う、・・・、け、こ」という要素を入れるイメージですね。
他にも生徒10人のテストの点数を入れるとか、、、

ただし、この配列!デメリットが2つあります


「配列」のデメリット

◆まずは1つ目!
箱の中身(要素)の型を揃えなければいけない!
引き続き生徒10人の場合で考えてみます!
ある生徒がテストを休んだため「失格」となりました。
Aさん:70点 Bさん:40点 Cさん:失格 Dさん:95点 ・・・・
みたいな感じだとします、、、いや、なんか違和感あるなってなります?
みんな点数書いてあるのに、Cさんだけ失格って書いてあるんですね。

もうちょっとプログラミング用語を入れると、int型の変数を格納している中でstring型である「失格」が混ざっています。
こういうの配列では許されません!仲間外れダメ絶対!ですね。
まあプログラミング的にはちゃんと変数の型は揃えたほうがいいんでしょうけどね

◆そして2つ目!
宣言した箱の数を変えることができない!
最初に10人生徒いたけど3人退学したから7人になっちゃったとか!(いやどんなクラスだよ笑笑)
そうすると、除籍された3人分の箱が邪魔になってしまいますよね。
まあ使わない部分が出るくらいならしょうがないとしましょう。

でも逆に生徒が新たに5人転校してきたらどうでしょう!現在合計12人!
箱10個に対し要素が2つも溢れてしまいました!
ということで、もう試験でもやって2人切り落としちゃってください、とか言うしかないんですよね。かわいそー

以上この2つが配列を作る際のデメリットです!
そしてそれを解決してくださるのが「List」!


Listの使い方!

今まで説明してきた配列は箱の数を変えることができないため「静的配列」と呼ばれます。それに対してListは簡単に箱の数を減らしたり増やすことができるので「動的配列」といいます。
配列よりも利便性が高いので覚えるとかなり楽になる部分が多くなるかと思います。実際にコードを書いていきます。

Addで要素を追加!

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ArrayProj
{
   class Program
   {
       static void Main(string[] args)
       {
           var SampleList = new List<int>(); //SampleListというリストを生成、int型の変数をいれることができる
           SampleList.Add(10); //10 を入れる
           SampleList.Add(25); //25   〃
           SampleList.Add(38); //38   〃

           int suuji1 = SampleList[0]; //int型変数suuji1にListのindex番号「0」を代入
           int suuji2 = SampleList[1];
           int suuji3 = SampleList[2];

           Console.WriteLine("\r\n");

           Console.WriteLine(suuji1); //suuji1を表示
           Console.WriteLine(suuji2);
           Console.WriteLine(suuji3);

           Console.WriteLine("\r\n");

            //suuji1~suuji3までの表示を繰り返し文で書いてみた
           foreach (int a in SampleList) //SampleListの要素を1個ずつaに入れて表示
           {
               Console.WriteLine(a);
           }

           Console.WriteLine("\r\n");

           Console.ReadKey(); //コンソールがすぐに閉じないように

       }
   }
}

実行結果はこんな感じ!

画像1

説明はコメントのとこに書いてあるからまあその通りです。
foreach とか Console.ReadKey(); のとこはあまり使わない人はわかんないかもですが、気になるならググってください。

ただ、一つ一つ要素追加していくのは面倒くさいので、以下のように短くしながら記述することもできます。

int[] kazu = { 10, 25, 38 };
var SampleList2 = new List<int>();
SampleList2.AddRange(kazu);

Removeで要素を削除!

SampleList.Remove(25); //「25」という値の要素を削除した
SampleList.Remove(100); //もちろん要素にないものをRemoveしても何も起きない

Listに要素を追加した後、↑のコードを書く。実行結果は・・・・

画像2


ただ、この場合は直接要素の値を指定して削除しました。
しかし、実際には ①「何番目の要素を削除したい」、②「何番目から何番目を削除したい」と思うことがあると思います。そんな時は・・・
   ①

SampleList.RemoveAt(1); //index番号「1」の要素を削除した
//SampleList.RemoveAt(5);  ← 5番目には要素入れていない。プログラム壊れそうだからやめよう。


   ①の実行結果

画像3

   ②

SampleList.RemoveRange(1,2); //index番号「1」から「2」の要素を削除した

   ②の実行結果

画像4

てな感じです。
なんかコードやら画像やら結構使ったので見にくくなっちゃったかもしれないので、とりあえず「Listの使い方1」では基本的なListの使い方ということで締めたいと思います!

Listを使いこなせれば色々とコードが書きやすくなると思いますのでもしC#使うことがあったらぜひ使ってやってくださいね。まあなんでもかんでもListを使えばいいというわけでもないのでそこは勉強していきましょう!

はい、今回は終わり!「Listの使い方2」をお楽しみに!笑

この記事が気に入ったらサポートをしてみませんか?