プログラミング

【C# 入門】リスト(List) の使い方

C# 組込み型Listの簡単な使用方法を紹介します。
入門者の方でコピペしてコードを動かしてみたい方や、久しぶりにC#をさわる方などの参考になればうれしいです。

  • リストの宣言・初期化
  • リストの要素の追加
  • リストのコピー
  • リスト同士の結合
  • リストの要素の削除

注意

本記事では、エラー・例外など詳細な使用方法については説明していません。
利用する際は自己責任でお願いします。

環境

想定する使用環境は以下です。(VisualStudio 2019 のデフォルトです)

  • Visual Studio 2019
  • .NET Framework 4.7.2
  • コンソールアプリ( .NET Framework )

はじめに

サンプルコードは、以下の自動生成されるコードに貼り付けて使用します。
VisualStudio で「新しいプロジェクトの作成」-> 「コンソールアプリ(.NET Framework)」を選択し、以下のコードを自動生成してください。

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            // ------------------------------------
            //
            // この部分にコードを貼り付けます。
            //
            // ------------------------------------
        }
    }
}

リストの使い方

宣言・初期化

int型の配列の宣言・初期化方法です。

// 初期化指定なしの宣言です。
List<int> list     = new List<int>();
List<int> listCopy = new List<int>();

 // 初期化指定ありの宣言です。
List<int> first  = new List<int> { 1, 2, 3 };
List<int> second = new List<int> { 4, 5 };

コピー

=(イコール) 演算子でコピーができます。
このコピーは「シャローコピー」の扱いになります。「list」「listCopy」が同じものなるイメージです。コピー後、listCopyに与えた変更は「list」に対しても反映されます。
「中身だけ」コピーして同じものにしない場合については、「ディープコピー」で調べてみてください。

list = listCopy;


結合

AddRange()を使用します。

// リスト同士を結合します
first.AddRange(second);


削除

// 指定した番号のデータを削除します。
// 指定は 0 で始まるので、最大個数(count -1) で最後の要素を削除できます
int count = first.Count();
first.RemoveAt( count - 1 );

まとめと実行結果

上で紹介した各機能の使用例です。

    class Program
    {
        static void Main(string[] args)
        {
            // 初期化指定なしの宣言です。
            List<int> list     = new List<int>();
            List<int> listCopy = new List<int>();

            // 初期化指定ありの宣言です。
            List<int> first  = new List<int> { 1, 2, 3 };
            List<int> second = new List<int> { 4, 5 };

            // イコール(=) の演算子でコピーできます。
            list = listCopy;

            // 要素の追加です
            second.Add( 99 );

            // リスト同士を結合します
            first.AddRange(second);

            // 要素の個数を取得します
            int count = first.Count();
            Console.WriteLine("Firstが保持しているデータは " + count + "個です");

            // 要素へのアクセスして表示します
            for (int i = 0; i < first.Count(); i++)
            {
                Console.WriteLine("First " + i + "個目 " + first[i]);
            }

            // 指定した番号のデータを削除します。
            // 指定は 0 で始まるので、個数6-1で最後(5番目)の要素を削除します
            first.RemoveAt( count - 1 );

            // 要素の個数を取得します
            count = first.Count();
            Console.WriteLine("Firstが保持しているデータは " + count + "個です");

            // 再表示です。
            for (int i = 0; i < first.Count(); i++)
            {
                Console.WriteLine("first " + i + "個目 " + first[i]);
            }

            // 終了待ちをします。
            Console.WriteLine("何かキーを押すと終了します。");
            Console.ReadKey();
        }
    }


実行結果です。

応援・要望お待ちしてます

ブログを見ていて「この辺を詳しく知りたい」「このライブラリの使い方を知りたい」「こんなことで困ってる」...etc があれば、コメント・問い合わせ・Twitterで教えてください。質問・ご要望に合わせて解説記事を作ります。

ブログを気に入っていただけたり、「応援してもいいよ」という方がいたら、ブログやSNSでの紹介をお願いします。 あたたかい応援は、中の人の更新の大きな励みになります。

ABOUT ME
えす
現役のソフトウェアエンジニアです。 C++ C# Python を使ってます。10年ちょい設計/開発部門にいましたが、今はQAエンジニアっぽいことをしています。

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です