[C#]配列(Array)の要素の有無を確認するには?

C#

どうも、ちょげ(@chogetarou)です。

配列(Array)の要素の有無を確認する方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

配列(Array)の要素の有無を確認する方法は、4つあります。

Array.Exists()

1つ目は、Array.Exists()を使う方法です。

まず、Array.Exists()を呼び出します。

そして、Array.Exists()の第1引数に配列、第2引数にラムダ式を指定します。

Array.Exists()の第2引数のラムダ式で、「引数 == 値」のような条件式を返します。

bool result = Array.Exists(array, item => item == value);

上記のArray.Exists()は、「==」で引数と比較した値が第1引数の配列内にあれば「True」、無ければ「False」を返します。

使用例

using System;
public class Example
{
	public static void Main()
	{
		int[] numbers = new int[5] { 1, 2, 3, 4, 5 };
		
		bool result1 = Array.Exists(numbers, item => item == 2);
		bool result2 = Array.Exists(numbers, item => item == 100);
		
		Console.WriteLine(result1); //True
		Console.WriteLine(result2); //False
 	}
}

Array.IndexOf()

2つ目は、Array.IndexOf()を使う方法です。

まず、Array.IndexOf()を呼び出します。

そして、Array.IndexOf()の第1引数に配列、第2引数に要素を指定します。

int result = Array.IndexOf(array, element);

上記のArray.IndexOf()は、第2引数の要素が第1引数の配列内にあれば要素のインデックス、配列内に無ければ「-1」を返します。

言い換えると、Array.IndexOf()の戻り値が「-1」であれば要素は無く、「-1」以外であれば要素があります。

if (Array.IndexOf(array, element) == -1)
{
     Console.WriteLine("要素は存在しません");
}
else
{
    Console.WriteLine("要素は存在します");
}

使用例

using System;
public class Example
{
	public static void Main()
	{
		int[] numbers = new int[5] { 1, 2, 3, 4, 5 };
		
		int result1 = Array.IndexOf(numbers, 4);
		int result2 = Array.IndexOf(numbers, 100);
		
		Console.WriteLine(result1); //3 -> 存在する
		Console.WriteLine(result2); //-1 -> 存在しない
 	}
}

Array.FindIndex()

3つ目は、Array.FindIndex()を使う方法です。

まず、Array.FindIndex()を呼び出します。

そして、Array.FindIndex()の第1引数に配列、第2引数にラムダ式を指定します。

Array.FindIndex()の第2引数のラムダ式で、「引数 == 要素」のような条件式を返します。

int result = Array.FindIndex(array, x => x == element);

上記のArray.FindIndex()は、「==」で引数と比較した要素が第1引数の配列内にあれば要素のインデックス、配列内に無ければ「-1」を返します。

言い換えると、上記のArray.FindIndex()の戻り値が「-1」であれば要素は無く、「-1」以外であれば要素があります。

if (Array.FindIndex(array, x => x == element) == -1)
{
     Console.WriteLine("要素は存在しません");
}
else
{
    Console.WriteLine("要素は存在します");
}

使用例

using System;
public class Example
{
	public static void Main()
	{
		int[] numbers = new int[5] { 1, 2, 3, 4, 5 };
		
		int result1 = Array.FindIndex(numbers, item => item == 5);
		int result2 = Array.FindIndex(numbers, item => item == 1000);
		
		Console.WriteLine(result1); //4 -> 存在する
		Console.WriteLine(result2); //-1 -> 存在しない
 	}
}

System.LinqのContains()

4つ目は、System.LinqのContains()を使う方法です。

まず、System.Linqを導入します。

using System.Linq;

そして、配列(Array)からContains()を呼び出します。

Contains()の引数に要素を指定します。

array.Contains(element)

Contains()は、引数に指定した要素が配列内にあれば「True」、無ければ「False」を返します。

使用例

using System;
using System.Linq;
public class Example
{
	public static void Main()
	{
		int[] numbers = new int[5] { 1, 2, 3, 4, 5 };
		
		bool result1 = numbers.Contains(3);
		bool result2 = numbers.Contains(10);
		
		Console.WriteLine(result1); //True
		Console.WriteLine(result2); //False
 	}
}
スポンサーリンク

まとめ

配列(Array)の要素の有無を確認する方法は、次の4つです。

  • Array.Exists()を使う方法
  • Array.IndexOf()を使う方法
  • Array.FindIndex()を使う方法
  • System.LinqのContains()を使う方法

コメント

タイトルとURLをコピーしました