どうも、ちょげ(@chogetarou)です。
配列(Array)の要素の有無を確認する方法を紹介します。
方法

配列(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()を使う方法
コメント