C#
 Computer >> コンピューター >  >> プログラミング >> C#

【C#】Listに指定した要素が含まれているか確認する方法(Containsメソッドの使い方)

C#でList<T>に特定の要素が含まれているかどうかを確認するには、Containsメソッドを使用します。このメソッドは、リスト内に指定した要素が存在する場合は true、存在しない場合は false を返します。

Containsメソッドの基本構文

public bool Contains(T item);

引数には検索したい要素を渡します。戻り値はbool型(true / false)です。

例1:文字列型のListで要素を確認する

以下は、文字列のリストに対してContainsメソッドを使い、特定の要素が含まれているかを確認するサンプルコードです。

using System;
using System.Collections.Generic;

public class Demo {
   public static void Main(String[] args){
      List<string> list1 = new List<string>();
      list1.Add("One");
      list1.Add("Two");
      list1.Add("Three");
      list1.Add("Four");
      list1.Add("Five");

      Console.WriteLine("List1の要素...");
      foreach (string res in list1){
         Console.WriteLine(res);
      }

      List<string> list2 = new List<string>();
      list2.Add("India");
      list2.Add("US");
      list2.Add("UK");
      list2.Add("Canada");
      list2.Add("Poland");
      list2.Add("Netherlands");

      Console.WriteLine("List2の要素...");
      List<string>.Enumerator demoEnum = list2.GetEnumerator();
      while (demoEnum.MoveNext()) {
         string res = demoEnum.Current;
         Console.WriteLine(res);
      }

      Console.WriteLine("List2はList1と等しいか? = " + list2.Equals(list1));
      Console.Write("List2にCanadaは含まれるか? = " + list2.Contains("Canada"));
   }
}

実行結果

List1の要素...
One
Two
Three
Four
Five
List2の要素...
India
US
UK
Canada
Poland
Netherlands
List2はList1と等しいか? = False
List2にCanadaは含まれるか? = True

この例では、list2.Contains("Canada") の結果が True となっており、リストに「Canada」が含まれていることが確認できます。また、Equals メソッドによる比較では、両リストの中身が異なるため False が返されています。

例2:数値型のListで要素を確認する

次に、int型のリストに対してContainsメソッドを使用する例を見てみましょう。

using System;
using System.Collections.Generic;

public class Demo {
   public static void Main(String[] args){
      List<int> list = new List<int>();
      list.Add(100);
      list.Add(200);
      list.Add(300);
      list.Add(400);
      list.Add(500);
      list.Add(600);
      list.Add(700);
      list.Add(800);
      list.Add(900);
      list.Add(1000);

      Console.WriteLine("Listの要素...");
      foreach (int res in list){
         Console.WriteLine(res);
      }

      Console.Write("Listに150は含まれるか? = " + list.Contains(150));
   }
}

実行結果

Listの要素...
100
200
300
400
500
600
700
800
900
1000
Listに150は含まれるか? = False

リストには100〜1000までの値が格納されていますが、「150」は存在しないため、list.Contains(150)False を返します。

補足:Containsメソッドの注意点

  • 参照型の場合:Containsメソッドは既定の等値比較子(EqualityComparer<T>.Default)を使用して要素を比較します。カスタムクラスを扱う場合は、Equals メソッドや IEquatable<T> インターフェースの実装によって比較結果が変わります。
  • パフォーマンス:Containsメソッドはリストを先頭から順に線形探索するため、計算量は O(n) です。大量のデータで頻繁に存在チェックを行う場合は、HashSet<T> の使用を検討すると高速化できます。
  • nullの扱い:参照型のリストに対してnullを検索することも可能です。

まとめ

C#のList<T>で特定の要素の有無を確認するには、Containsメソッドが最もシンプルで直感的な方法です。戻り値がbool型なので、if文などの条件分岐と組み合わせて簡単に利用できます。文字列・数値を問わず使えるため、日常的なプログラミングで頻繁に活用される基本メソッドの一つです。

  1. 【JavaScript入門】addEventListener()で要素にイベントハンドラを追加する方法

    addEventListener()メソッドとはJavaScriptでは、addEventListener()メソッドを使うことで、指定した要素にイベントハンドラ(イベントリスナー)を登録できます。このメソッドの最大の特徴は、すでに設定されているイベントハンドラを上書きせずに新しいハンドラを追加できる点です。そのため、1つの要素に対して複数のイベントハンドラを同時に登録することも可能です。さらに、addEventListener()を利用すると、バブリング(イベントの伝播)への反応の仕方を柔軟に制御できます。mouseoverやclickをはじめ、さまざまな種類のイベントを扱えるのも魅力です。

  2. 【Android開発】アラートダイアログ(AlertDialog)にチェックボックスリストを追加する方法

    この記事では、Androidアプリでアラートダイアログ(AlertDialog)にチェックボックス形式の複数選択リストを追加する方法を、実際のコード例とともにステップごとに解説します。 setMultiChoiceItems()メソッドを使用すると、ユーザーが複数の項目を選択できるダイアログを簡単に実装できます。選択状態はboolean配列で管理され、項目がチェックされたタイミングで任意の処理を実行することも可能です。 手順1:新しいプロジェクトを作成する まず、Android Studioを開き、メニューから「File」⇒「New Project」を選択して新しいプロジェクトを作成します。