次の方法で共有


Array.IndexOf メソッド (Array, Object)

指定したオブジェクトを検索し、1 次元の Array 全体でそのオブジェクトが最初に見つかった位置のインデックス番号を返します。

Overloads Public Shared Function IndexOf( _
   ByVal array As Array, _   ByVal value As Object _) As Integer
[C#]
public static int IndexOf(Arrayarray,objectvalue);
[C++]
public: static int IndexOf(Array* array,Object* value);
[JScript]
public static function IndexOf(
   array : Array,value : Object) : int;

パラメータ

  • array
    検索する 1 次元 Array
  • value
    array 内で検索するオブジェクト。

戻り値

array 全体で value が見つかった場合は、その値が最初に見つかった位置のインデックス番号。それ以外の場合は、配列の下限 - 1。

例外

例外の種類 条件
ArgumentNullException array が null 参照 (Visual Basic では Nothing) です。
RankException array が多次元です。

解説

1 次元の Array 内で、検索は最初の要素から開始して順方向に進み、最後の要素で終了します。

要素は、 Object.Equals メソッドを使用して、指定した値と比較されます。要素の型が非組み込み型 (ユーザー定義型) の場合は、この型の Equals 実装が使用されます。

ほとんどの配列の下限は 0 であるため、 value が見つからない場合、このメソッドは通常 -1 を返します。配列の下限が Int32.MinValue に等しく、 value が見つからないまれな場合、このメソッドは Int32.MaxValue を返します。これは System.Int32.MinValue - 1 です。

使用例

最初に見つかった指定要素のインデックスを確認する方法を次のコード例で示します。

 
Imports System
Imports Microsoft.VisualBasic

Public Class SamplesArray    
    
    Public Shared Sub Main()
        
        ' Creates and initializes a new Array with three elements of
        ' the same value.
        Dim myArray As Array = Array.CreateInstance(GetType(String), 12)
        myArray.SetValue("the", 0)
        myArray.SetValue("quick", 1)
        myArray.SetValue("brown", 2)
        myArray.SetValue("fox", 3)
        myArray.SetValue("jumps", 4)
        myArray.SetValue("over", 5)
        myArray.SetValue("the", 6)
        myArray.SetValue("lazy", 7)
        myArray.SetValue("dog", 8)
        myArray.SetValue("in", 9)
        myArray.SetValue("the", 10)
        myArray.SetValue("barn", 11)
        
        ' Displays the values of the Array.
        Console.WriteLine("The Array contains the following values:")
        PrintIndexAndValues(myArray)
        
        ' Searches for the first occurrence of the duplicated value.
        Dim myString As String = "the"
        Dim myIndex As Integer = Array.IndexOf(myArray, myString)
        Console.WriteLine("The first occurrence of ""{0}"" is at index {1}.", _
           myString, myIndex)
        
        ' Searches for the first occurrence of the duplicated value in the last
        ' section of the Array.
        myIndex = Array.IndexOf(myArray, myString, 4)
        Console.WriteLine("The first occurrence of ""{0}"" between index 4 " _
           + "and the end is at index {1}.", myString, myIndex)
        
        ' Searches for the first occurrence of the duplicated value in a section
        ' of the Array.
        myIndex = Array.IndexOf(myArray, myString, 6, 5)
        Console.WriteLine("The first occurrence of ""{0}"" between index 6 " _
           + "and index 10 is at index {1}.", myString, myIndex)
    End Sub
    
    
    Public Shared Sub PrintIndexAndValues(myArray As Array)
        Dim i As Integer
        For i = myArray.GetLowerBound(0) To myArray.GetUpperBound(0)
            Console.WriteLine(ControlChars.Tab + "[{0}]:" + ControlChars.Tab _
               + "{1}", i, myArray.GetValue(i))
        Next i
    End Sub
End Class

' This code produces the following output.
' 
' The Array contains the following values:
'     [0]:    the
'     [1]:    quick
'     [2]:    brown
'     [3]:    fox
'     [4]:    jumps
'     [5]:    over
'     [6]:    the
'     [7]:    lazy
'     [8]:    dog
'     [9]:    in
'     [10]:    the
'     [11]:    barn
' The first occurrence of "the" is at index 0.
' The first occurrence of "the" between index 4 and the end is at index 6.
' The first occurrence of "the" between index 6 and index 10 is at index 6. 

[C#] 
using System;
public class SamplesArray  {

   public static void Main()  {

      // Creates and initializes a new Array with three elements of the same value.
      Array myArray=Array.CreateInstance( typeof(String), 12 );
      myArray.SetValue( "the", 0 );
      myArray.SetValue( "quick", 1 );
      myArray.SetValue( "brown", 2 );
      myArray.SetValue( "fox", 3 );
      myArray.SetValue( "jumps", 4 );
      myArray.SetValue( "over", 5 );
      myArray.SetValue( "the", 6 );
      myArray.SetValue( "lazy", 7 );
      myArray.SetValue( "dog", 8 );
      myArray.SetValue( "in", 9 );
      myArray.SetValue( "the", 10 );
      myArray.SetValue( "barn", 11 );

      // Displays the values of the Array.
      Console.WriteLine( "The Array contains the following values:" );
      PrintIndexAndValues( myArray );

      // Searches for the first occurrence of the duplicated value.
      String myString = "the";
      int myIndex = Array.IndexOf( myArray, myString );
      Console.WriteLine( "The first occurrence of \"{0}\" is at index {1}.", myString, myIndex );

      // Searches for the first occurrence of the duplicated value in the last section of the Array.
      myIndex = Array.IndexOf( myArray, myString, 4 );
      Console.WriteLine( "The first occurrence of \"{0}\" between index 4 and the end is at index {1}.", myString, myIndex );

      // Searches for the first occurrence of the duplicated value in a section of the Array.
      myIndex = Array.IndexOf( myArray, myString, 6, 5 );
      Console.WriteLine( "The first occurrence of \"{0}\" between index 6 and index 10 is at index {1}.", myString, myIndex );
   }


   public static void PrintIndexAndValues( Array myArray )  {
      for ( int i = myArray.GetLowerBound(0); i <= myArray.GetUpperBound(0); i++ )
         Console.WriteLine( "\t[{0}]:\t{1}", i, myArray.GetValue( i ) );
   }
}
/*
This code produces the following output.

The Array contains the following values:
    [0]:    the
    [1]:    quick
    [2]:    brown
    [3]:    fox
    [4]:    jumps
    [5]:    over
    [6]:    the
    [7]:    lazy
    [8]:    dog
    [9]:    in
    [10]:    the
    [11]:    barn
The first occurrence of "the" is at index 0.
The first occurrence of "the" between index 4 and the end is at index 6.
The first occurrence of "the" between index 6 and index 10 is at index 6.
*/

[C++] 
#using <mscorlib.dll>
using namespace System;

void PrintIndexAndValues( Array* myArray );

void main()  {
 
    // Creates and initializes a new Array instance with three elements of the same value.
    Array* myArray = Array::CreateInstance( __typeof(String), 12 );
    myArray->SetValue( S"the", 0 );
    myArray->SetValue( S"quick", 1 );
    myArray->SetValue( S"brown", 2 );
    myArray->SetValue( S"fox", 3 );
    myArray->SetValue( S"jumped", 4 );
    myArray->SetValue( S"over", 5 );
    myArray->SetValue( S"the", 6 );
    myArray->SetValue( S"lazy", 7 );
    myArray->SetValue( S"dog", 8 );
    myArray->SetValue( S"in", 9 );
    myArray->SetValue( S"the", 10 );
    myArray->SetValue( S"barn", 11 );
 
    // Displays the values of the Array.
    Console::WriteLine( "The Array instance contains the following values:" );
    PrintIndexAndValues( myArray );
 
    // Searches for the first occurrence of the duplicated value.
    String* myString = "the";
    int myIndex = Array::IndexOf( myArray, myString );
    Console::WriteLine( "The first occurrence of \"{0}\" is at index {1}.", myString, __box(myIndex) );
 
    // Searches for the first occurrence of the duplicated value in the last section of the Array.
    myIndex = Array::IndexOf( myArray, myString, 4 );
    Console::WriteLine( "The first occurrence of \"{0}\" between index 4 and the end is at index {1}.", myString, __box(myIndex));
 
    // Searches for the first occurrence of the duplicated value in a section of the Array.
    myIndex = Array::IndexOf( myArray, myString, 6, 5 );
    Console::WriteLine( "The first occurrence of \"{0}\" between index 6 and index 10 is at index {1}.", myString, __box(myIndex));
}
 
 
void PrintIndexAndValues( Array* myArray )  {
    for ( int i = myArray->GetLowerBound(0); i <= myArray->GetUpperBound(0); i++ )
        Console::WriteLine( "\t[{0}]:\t{1}", __box(i), myArray->GetValue( i ) );
}

 /*
 This code produces the following output.
 
 The Array instance contains the following values:
     [0]:    the
     [1]:    quick
     [2]:    brown
     [3]:    fox
     [4]:    jumped
     [5]:    over
     [6]:    the
     [7]:    lazy
     [8]:    dog
     [9]:    in
     [10]:    the
     [11]:    barn
 The first occurrence of "the" is at index 0.
 The first occurrence of "the" between index 4 and the end is at index 6.
 The first occurrence of "the" between index 6 and index 10 is at index 6.
 */

[JScript] 
import System;

// Creates and initializes a new Array with three elements of the same value.
var myArray : System.Array = System.Array.CreateInstance( System.String, 12 );
myArray.SetValue( "the", 0 );
myArray.SetValue( "quick", 1 );
myArray.SetValue( "brown", 2 );
myArray.SetValue( "fox", 3 );
myArray.SetValue( "jumped", 4 );
myArray.SetValue( "over", 5 );
myArray.SetValue( "the", 6 );
myArray.SetValue( "lazy", 7 );
myArray.SetValue( "dog", 8 );
myArray.SetValue( "in", 9 );
myArray.SetValue( "the", 10 );
myArray.SetValue( "barn", 11 );

// Displays the values of the Array.
Console.WriteLine( "The Array contains the following values:" );
PrintIndexAndValues( myArray );

// Searches for the first occurrence of the duplicated value.
var myString : String = "the";
var myIndex : int = System.Array.IndexOf( myArray, myString );
Console.WriteLine( "The first occurrence of \"{0}\" is at index {1}.", myString, myIndex );

// Searches for the first occurrence of the duplicated value in the last section of the Array.
myIndex = System.Array.IndexOf( myArray, myString, 4 );
Console.WriteLine( "The first occurrence of \"{0}\" between index 4 and the end is at index {1}.", myString, myIndex );

// Searches for the first occurrence of the duplicated value in a section of the Array.
myIndex = System.Array.IndexOf( myArray, myString, 6, 5 );
Console.WriteLine( "The first occurrence of \"{0}\" between index 6 and index 10 is at index {1}.", myString, myIndex );
 
 
function PrintIndexAndValues( myArray : System.Array  )  {
   for ( var i : int = myArray.GetLowerBound(0); i <= myArray.GetUpperBound(0); i++ )
      Console.WriteLine( "\t[{0}]:\t{1}", i, myArray.GetValue( i ) );
}
 
 /*
 This code produces the following output.
 
 The Array contains the following values:
     [0]:    the
     [1]:    quick
     [2]:    brown
     [3]:    fox
     [4]:    jumped
     [5]:    over
     [6]:    the
     [7]:    lazy
     [8]:    dog
     [9]:    in
     [10]:    the
     [11]:    barn
 The first occurrence of "the" is at index 0.
 The first occurrence of "the" between index 4 and the end is at index 6.
 The first occurrence of "the" between index 6 and index 10 is at index 6.
 */

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, Common Language Infrastructure (CLI) Standard

参照

Array クラス | Array メンバ | System 名前空間 | Array.IndexOf オーバーロードの一覧 | LastIndexOf | カルチャを認識しない配列の操作の実行