IndexOf
概要
- 指定した要素がArray内の何番目にあるかを返す関数。
- 調べる要素が複数含まれていたら最も先頭に近いものの番号を返す。
- 含んでいない場合は-1を返す。
引数について
- IndexOfは引数の数により厳密には3種類存在する(参考:Array.IndexOf メソッド (System) | Microsoft Learn)。
- 別の関数というよりは、引数を指定するかどうかで変わると捉えた方が個人的にわかりやすい。
- 赤字でないものは省略可能。
引数 | 役割など |
---|---|
Array array | 検索したいArray |
object value | 検索したいキー |
startIndex | Arrayの何番目から検索するか。 |
count | startIndexから合わせて何個を検索するか 配列の大きさを超えるとエラー |
使用例
ソースコード
using System; public class Sample { public static void Main() { int[] a = new int[8] { 0, 1, 7, 3, 4, 5, 6, 7 }; // 第2引数まで指定する場合 //先頭の7なので2を返す Console.WriteLine($"Array.IndexOf(a, 7) = {Array.IndexOf(a, 7)}"); //2は含んでいないので-1を返す Console.WriteLine($"Array.IndexOf(a, 2) = {Array.IndexOf(a, 2)}"); // 第3引数(startIndex)まで指定する場合 //1番目以降にある最初の7なので2を返す Console.WriteLine($"Array.IndexOf(a, 7, 1) = {Array.IndexOf(a, 7, 1)}"); //3番目以降なので末尾の番号7を返す Console.WriteLine($"Array.IndexOf(a, 7, 3) = {Array.IndexOf(a, 7, 3)}"); // 第4引数(count)まで指定する場合 //1~4番目にある7なので2を返す Console.WriteLine($"Array.IndexOf(a, 7, 1, 4) = {Array.IndexOf(a, 7, 1, 4)}"); //3~6番目に7はないので-1を返す Console.WriteLine($"Array.IndexOf(a, 7, 3, 4) = {Array.IndexOf(a, 7, 3, 4)}"); } }
実行結果
Array.IndexOf(a, 7) = 2 Array.IndexOf(a, 2) = -1 Array.IndexOf(a, 7, 1) = 2 Array.IndexOf(a, 7, 3) = 7 Array.IndexOf(a, 7, 1, 4) = 2 Array.IndexOf(a, 7, 3, 4) = -1
LastIndexOf
概要
- 指定した要素がArray内の何番目にあるかを返す関数。
- IndexOfと似ているが、 調べる要素が複数含まれていたら最も末尾に近いものの番号を返すという違いがある。
引数について
- IndexOfと引数名は同じだが、一部挙動が違う。
- 赤字でないものは省略可能。
引数 | 役割など |
---|---|
Array array | 検索したいArray |
object value | 検索したいキー |
startIndex | Arrayの0~startIndex番目を検索するか。 |
count | startIndexから先頭に向かってcount個を検索する |
使用例
ソースコード
using System; public class Sample { public static void Main() { int[] a = new int[8] { 0, 1, 7, 3, 4, 5, 6, 7 }; // 第2引数まで指定する場合 //末尾の7なので2を返す Console.WriteLine($"Array.LastIndexOf(a, 7) = {Array.LastIndexOf(a, 7)}"); //2は含んでいないので-1を返す Console.WriteLine($"Array.LastIndexOf(a, 2) = {Array.LastIndexOf(a, 2)}"); // 第3引数(startIndex)まで指定する場合 //3番目以前にある最初の7なので2を返す Console.WriteLine($"Array.LastIndexOf(a, 7, 3) = {Array.LastIndexOf(a, 7, 3)}"); // 第4引数(count)まで指定する場合 //2~4番目にある7なので2を返す Console.WriteLine($"Array.LastIndexOf(a, 7, 4, 3) = {Array.LastIndexOf(a, 7, 4, 3)}"); //3~6番目に7はないので-1を返す Console.WriteLine($"Array.LastIndexOf(a, 7, 6, 4) = {Array.LastIndexOf(a, 7, 6, 4)}"); } }
実行結果
Array.LastIndexOf(a, 7) = 7 Array.LastIndexOf(a, 2) = -1 Array.LastIndexOf(a, 7, 3) = 2 Array.LastIndexOf(a, 7, 4, 3) = 2 Array.LastIndexOf(a, 7, 6, 4) = -1