【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」の使い方は次の記事で詳しく解説しているのでぜひ確認してください!

【C#入門】ArrayListとは?Listとの違いや使い分けを解説
更新日 : 2018年3月13日

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メソッドで要素を追加する方法は次の記事で詳しく解説しているのでぜひ確認してください!

【C#入門】Add、RemoveでListの要素を追加、削除する方法
更新日 : 2019年5月22日

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で要素を削除する方法は次の記事で詳しく解説しているのでぜひ確認してください!

【C#入門】Add、RemoveでListの要素を追加、削除する方法
更新日 : 2019年5月22日

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をソートする方法は次の記事で詳しく解説しているのでぜひ確認してください!

【C#入門】配列、Listをソートする方法(降順、カスタマイズも解説)
更新日 : 2019年4月25日

Listの要素を検索する方法

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

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

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

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

【C#入門】Listの要素を検索する方法総まとめ(Find/IndexOf/Contains)
更新日 : 2019年4月6日

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

【C#入門】IndexOfで文字列やList、配列を検索する方法
更新日 : 2019年5月7日

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

【C#入門】Containsで値が含まれるか調べる方法(文字列/配列/List)
更新日 : 2019年4月4日

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の要素を検索するFindの使い方(FindAll/FindIndex)
更新日 : 2019年4月11日

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

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

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

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

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

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

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

↓のカレンダーから無料体験レッスンの予約ができます!

まとめ

いかがでしたか?

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

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

LINEで送る
Pocket

SEからWebエンジニアへ転職した理由

侍エンジニア塾卒業生の小池さんは、以前は社内SEとして約5年ほど勤務していました。しかし業務内容は社内のヘルプデスク対応など、プログラムを書く仕事は全くなかったそうです。

SEながらプログラムを書けない現状に「将来仕事がなくなるんじゃないか」と不安を感じ、プログラミング学習を決意。

弊社スクールで学習し、無事ベンチャー企業のプログラマーとして転職に成功しました。そんな小池さんの学習法や転職体験談を伺いましたので、是非ご覧ください。

「プログラミングができないSEは仕事がなくなる」不安を感じたSEが未経験から転職成功するまで
更新日 : 2019年10月7日

書いた人

中沢 丈

中沢 丈

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

連絡先はこちらです。
[email protected]

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説