【C#入門】Listの使い方総まとめ(ArrayList/Add/Remove/ソート/検索)

こんにちは!エンジニアの中沢です。

C#には同じデータ型の値をまとめて取り扱うためのListがあります。

Listは配列と違い、簡単に要素を追加したり削除することができます。そのため、要素数が変わる場合には「List」を使うと良いでしょう!

この記事では、

  • Listとは
  • ListとArrayListとの違いは?
  • Listの要素の追加と削除をする方法
  • Listをソートする方法
  • Listの要素を検索する方法
  • IndexOfで要素のインデックスを取得する方法
  • Containsで値が含まれるか判定する方法
  • Findで条件を指定して要素を検索する方法

というように、基本的な内容から応用的な使い方に関しても解説していきます。今回はこれらの方法を覚えるために、Listのさまざまな使い方をわかりやすく解説します!

目次

Listとは

「List」とは、同じデータ型の値をまとめて取り扱うためのモノです。

Listは配列と違い、簡単に要素を追加したり削除することができるメソッドが用意されています。そのため、要素数が変わる場合にはListを使います。

「List」は次のように使用します。

using System;
using System.Collections.Generic;

namespace Sample
{
    class Program
    {
        static void Main(string[] args)
        {
            var strList = new List<string>();
            strList.Add("Samurai");
            strList.Add("Engineer");

            string str1 = strList[0];
            string str2 = strList[1];

            Console.WriteLine(str1);
            Console.WriteLine(str2);

            Console.ReadKey();
        }
    }
}

実行結果:

Samurai
Engineer

このプログラムでは、Listを宣言した後にAddメソッドで要素を追加しています。

Listの詳しい使い方をこれから解説していくので記事の続きを確認してください。

ListとArrayListとの違いは?

ここでは、「ArrayList」と「List」の違いを解説します。

「List」は指定したデータ型の要素しか格納できませんが、要素を取り出すときにキャストをする必要がありません。そのため、データ型があらかじめ決まっている場合には「List」を使う方が便利です。

「ArrayList」では異なるデータ型が格納できますが、それが原因でデータ型の間違いによるエラーが発生することがあるので注意が必要です。また、「ArrayList」はキャストをする必要があるためコードの記述に手間がかかります。

基本的には、「ArrayList」よりも「List」の方が使いやすいので、「List」を使うようにすれば問題ないはずです!

「ArrayList」の使い方は次の記事で詳しく解説しているのでぜひ確認してください!

Listの要素の追加と削除をする(Add/Remove)

Addで要素を追加する方法

ここでは、Listに要素を追加する方法を解説します。Listに要素を追加するにはAddメソッドを使います。

Addメソッドの使い方を次のプログラムで確認してみましょう。

using System;
using System.Collections.Generic;

namespace Sample
{
  class Sample
  {
    static void Main()
    {
      var list = new List<string>();
      list.Add("Tokyo");
      list.Add("Osaka");
      list.Add("Nagoya");
      
      Console.WriteLine("[{0}]", string.Join(", ", list));
      Console.ReadKey();
    }
  }
}

実行結果:

[Tokyo, Osaka, Nagoya]

このプログラムでは、Addメソッドを使って要素を追加しています。

Addメソッドで要素を追加する方法は次の記事で詳しく解説しているのでぜひ確認してください!

Removeで要素を削除する方法

ここでは、Listの要素を削除する方法を解説します。Listの要素を削除するにはRemoveメソッドを使います。

Removeメソッドの使い方を次のプログラムで確認してみましょう。

using System;
using System.Collections.Generic;

namespace Sample
{
  class Sample
  {
    static void Main()
    {
      var list = new List<string>();
      list.Add("Tokyo");
      list.Add("Osaka");
      list.Add("Nagoya");
      
      list.Remove("Osaka");
      
      Console.WriteLine("[{0}]", string.Join(", ", list));
      Console.ReadKey();
    }
  }
}

実行結果:

[Tokyo, Nagoya]

このプログラムでは、Removeメソッドを使って要素を削除しています。

Removeで要素を削除する方法は次の記事で詳しく解説しているのでぜひ確認してください!

Listをソートする方法

ここでは、Listをソートする方法を解説します。Listの要素をソートするにはSortメソッドを使います。

Sortメソッドの使い方を次のプログラムで確認してみましょう。

using System;
using System.Collections.Generic;

namespace Sample
{
  class Sample
  {
    static void Main()
    {
      int[] src = {3, 1, 5, 4, 2};
      var list = new List<int>();
      
      // listに要素を追加
      list.AddRange(src);
      
      // listをソート
      list.Sort();
      
      Console.WriteLine("[{0}]", string.Join(", ", list));
      Console.ReadKey();
    }
  }
}

実行結果:

[1, 2, 3, 4, 5]

このプログラムでは、AddRangeメソッドを使ってListに配列の要素を追加しています。そして、Sortメソッドを使ってListの要素を昇順に並び替えています。

Listをソートする方法は次の記事で詳しく解説しているのでぜひ確認してください!

Listの要素を検索する方法

Listの要素を検索して、目的の要素を探すにはいくつかの方法があります。

条件に一致する要素のインデックスを取得するにはIndexOfメソッドを使い、要素が含まれているどうかを判定するにはContainsメソッドを使います。

また、より細かい条件で要素を検索するにはFindメソッドを使います。

それぞれの検索方法の違いについては次の記事で詳しく解説しているので、ぜひ確認してください!

IndexOfで要素のインデックスを取得する方法

Listの要素を検索してインデックスを取得するには、IndexOfメソッドを使います。

IndexOfメソッドの使い方を次のプログラムで確認してみましょう。

using System;

namespace Sample
{
  class Sample
  {
    static void Main()
    {
      string str = "Hello World!";
      string target = "l";
      
      int num = str.IndexOf(target) + 1;
      
      if(num > 0) {
        Console.WriteLine("{0}は{1}番目にあります", target, num);  
      } else {
        Console.WriteLine("{0}は見つかりませんでした", target);
      }
      
      Console.ReadKey();
    }
  }
}

実行結果:

lは3番目にあります

このサンプルコードでは、IndexOfメソッドを使って”l”を検索し、その位置を取得しています。

IndexOfメソッドで要素のインデックスを取得する方法は次の記事で詳しく解説しているので、ぜひ確認してください!

Containsで値が含まれるか判定する方法

Listの要素を検索して値が含まれるかどうかを判定するには、Containsメソッドを使います。

Containsメソッドの使い方を次のプログラムで確認してみましょう。

using System;

namespace Sample
{
  class Sample
  {
    static void Main()
    {
      string str = "Hello World!";
      string target = "W";
      
      if(str.Contains(target)) {
        Console.WriteLine("{0}が見つかりました", target);  
      } else {
        Console.WriteLine("{0}は見つかりませんでした", target);
      }
      
      Console.ReadKey();
    }
  }
}

実行結果:

Wが見つかりました

このサンプルコードでは、Containsメソッドを使って”W”が含まれるか確認しています。

Containsメソッドを使って値が含まれるかを判定する方法は次の記事で詳しく解説しているので、ぜひ確認してください!

Findで条件を指定して要素を検索する方法

Listの要素を検索して、条件に一致する要素を取得するにはFindメソッドを使います。

Findメソッドの使い方を次のプログラムで確認してみましょう。

using System;
using System.Collections.Generic;

namespace Sample
{
    class Program
    {
        static void Main(string[] args)
        {
            var list = new List<int> { 1, 2, 3, 7, 8, 9 };

            int result = list.Find(n => n % 2 == 0);

            Console.WriteLine(result);
            Console.ReadKey();
        }
    }
}

実行結果:

2

このプログラムでは、Findメソッドを使ってListの中から偶数の値を検索して、最初に見つかった「2」を表示しています。

Findメソッドを使って条件を指定して要素を検索する方法は次の記事で詳しく解説しているので、ぜひ確認してください!

本格的にC#を学習するなら侍エンジニア

今回ご紹介したListの使い方など、C#を学習していく上で覚えるべきことや調べるべきことはたくさん出てくると思います。

インターネットで検索すれば必要な情報を得ることができますが、応用や細かい部分は自分で調べなくちゃならないですよね。そこで活用したいのがプログラミングスクールです。

弊社「侍エンジニア」では、現役エンジニアでもある講師が最後まで変わらずにあなたの学習をサポート致します。そのため、あなたの躓きやすいポイントなどを事前に把握して学習がスムーズに進むよう徹底サポート。

また、あなたの目的に合わせたオーダーメイドカリキュラムによって、必要なスキルだけを身に付けることができます。

ですが、いきなりスクールに通うのは不安があると言う方は、弊社で行っている「無料カウンセリング」を受けてみてください。業界屈指のコンサルタントがあなたの不安を解決してくれます。こんな人におすすめです!

  • 「独学で挫折するのは嫌だ!スクールに通いたいけど不安」と思う方
  • C#が自分に本当に合っているのか、仕事に繋がるのか相談したい方
  • プログラミングを学んだあと、今後のキャリアプランを相談したい方

↓のカレンダーから無料カウンセリングの予約ができます!

お急ぎの方はこちらからお問い合わせください。

読み込みに失敗しました。
大変お手数ですが、本ページを再度読み込んでください。

再度読み込んでも、読み込み失敗が起こる場合は
こちらからお問い合わせください。

カウンセリングはオンラインにて実施しております。

※予約完了後に、カウンセリングのためのURLやIDなどをメールにてご案内します

1.ご希望の日時を選択してください

空きあり 満席
前週
次週

2.必須事項を入力してください

必須選択された日時

日時を選択してください

開催場所 オンライン

日時を選択する

必須お名前

必須電話番号

必須メールアドレス

    ご予約により、個人情報の取り扱いおよび利用規約に同意するものとします。

    まとめ

    いかがでしたか?

    今回はListを扱う様々な方法をまとめて解説しました。詳しい使い方はそれぞれのリンク先の記事で解説しているのでぜひ確認してください。

    もし、Listの使い方を忘れてしまったらこの記事を確認してくださいね!

    この記事を書いた人

    フリーランスエンジニア。
    システム開発からコンテンツ作成まで幅広く対応します。

    連絡先はこちらです。
    ntakeshi@sejuku.net

    目次