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

C#で文字列配列に特定の文字列が含まれているかどうかを確認する方法


C#では、Contains()メソッドを使用して、文字列や配列の中に特定の文字列が存在するかどうかを確認できます。このメソッドはブール値(true/false)を返します。

部分文字列が対象の文字列内に存在する場合、または検索値が空文字列("")である場合はtrueを返し、それ以外の場合はfalseを返します。

例外: 検索対象がnullの場合、ArgumentNullExceptionがスローされることがあります。

このメソッドは大文字と小文字を区別してチェックを行います。そのため、「Sachin」と「sachin」は異なる文字列として扱われます。検索は常に文字列の先頭の文字位置から開始され、末尾の文字位置まで続けられます。

なお、文字列配列に特定の要素が含まれているかを確認する場合は、System.Linq名前空間に含まれるLINQのContains()拡張メソッドを使用します。これらのLINQメソッドを使うには、ファイルの先頭でusing System.Linq;を宣言しておく必要があります。以下に具体的な例を示します。

例1: 大文字と小文字が一致しない場合

Containsは大文字と小文字を区別するため、文字列が見つかればtrue、見つからなければfalseを返します。次の例では「sachin」(すべて小文字)で検索しているため、一致する要素は見つかりません。

static void Main(string[] args){
    string[] strs = { "Sachin", "India", "Bangalore", "Karnataka", "Delhi" };
    if (strs.Contains("sachin")){
        System.Console.WriteLine("文字列が存在します");
    } else {
        System.Console.WriteLine("文字列が存在しません");
    }
    Console.ReadLine();
}

出力

文字列が存在しません

例2: 大文字と小文字が一致する場合

今度は「Sachin」と正確に一致する文字列で検索するため、要素が見つかります。

static void Main(string[] args){
    string[] strs = { "Sachin", "India", "Bangalore", "Karnataka", "Delhi" };
    if (strs.Contains("Sachin")){
        System.Console.WriteLine("文字列が存在します");
    } else {
        System.Console.WriteLine("文字列が存在しません");
    }
    Console.ReadLine();
}

出力

文字列が存在します

例3: LINQのWhereとFirstOrDefaultを使用する方法

条件に一致する最初の要素そのものを取得したい場合は、Where()FirstOrDefault()を組み合わせる方法も便利です。一致する要素がない場合はnullが返されます。

static void Main(string[] args){
    string[] strs = { "Sachin", "India", "Bangalore", "Karnataka", "Delhi" };
    var res = strs.Where(x => x == "Sachin").FirstOrDefault();
    System.Console.WriteLine(res);
    Console.ReadLine();
}

出力

Sachin

例4: foreachループを使用する方法

LINQを使用しない場合は、foreachループで各要素を1つずつ比較する方法もあります。

static void Main(string[] args){
    string[] strs = { "Sachin", "India", "Bangalore", "Karnataka", "Delhi" };
    foreach (var item in strs){
        if (item == "Sachin"){
            System.Console.WriteLine("文字列が存在します");
        }
    }
    Console.ReadLine();
}

出力

文字列が存在します

補足: 大文字と小文字を区別せずに比較したい場合

大文字・小文字の違いを無視して比較したい場合は、string.Equals(item, "Sachin", StringComparison.OrdinalIgnoreCase)のようにStringComparisonオプションを指定すると、意図した結果を得やすくなります。

  1. C#で空の文字列配列を宣言する方法を解説

    C#では、文字列を文字の配列として扱うこともできますが、一般的には string キーワードを使って文字列変数を宣言するのが主流です。string キーワードは、System.String クラスのエイリアス(別名)として機能します。空の文字列配列の宣言方法空の文字列配列を宣言するには、以下のように記述します。string[] arr = new string[] {}; // 空の文字列配列このように宣言すると、要素を一切持たない配列が生成されます。それでは、この空の配列を出力するとどうなるのか、実際のコードで確認してみましょう。サンプルコードusing System; namespace

  2. Pythonで文字列が数字のみで構成されているかを判定する方法

    Pythonで文字列が数字のみかどうかを確認する方法 Pythonでは、文字列が数字(0〜9)だけで構成されているかどうかを簡単に判定できます。代表的な方法として、組み込みメソッド isdigit() を使う方法と、正規表現を使う方法の2つがあります。 方法1:isdigit() メソッドを使う Pythonには標準で isdigit() という文字列メソッドが用意されています。文字列内のすべての文字が数字(0〜9)であれば True を返し、それ以外の場合は False を返します。 >>> string = 9764135408 >>> string.