List<T>.IndexOf メソッド

定義

List<T> 全体またはその一部において、最初に値が出現した位置のインデックス番号 (0 から始まる) を返します。Returns the zero-based index of the first occurrence of a value in the List<T> or in a portion of it.

オーバーロード

IndexOf(T, Int32)

指定したオブジェクトを検索し、指定したインデックスから最後の要素までの List<T> 内の要素の範囲内で最初に出現する位置の 0 から始まるインデックス番号を返します。Searches for the specified object and returns the zero-based index of the first occurrence within the range of elements in the List<T> that extends from the specified index to the last element.

IndexOf(T, Int32, Int32)

指定したインデックスから始まり、指定した数の要素が含まれる List<T> の要素範囲内で、指定したオブジェクトを検索し、最初に出現する位置の 0 から始まるインデックス番号を返します。Searches for the specified object and returns the zero-based index of the first occurrence within the range of elements in the List<T> that starts at the specified index and contains the specified number of elements.

IndexOf(T)

指定したオブジェクトを検索し、List<T> 全体内で最初に見つかった位置の 0 から始まるインデックスを返します。Searches for the specified object and returns the zero-based index of the first occurrence within the entire List<T>.

IndexOf(T, Int32)

指定したオブジェクトを検索し、指定したインデックスから最後の要素までの List<T> 内の要素の範囲内で最初に出現する位置の 0 から始まるインデックス番号を返します。Searches for the specified object and returns the zero-based index of the first occurrence within the range of elements in the List<T> that extends from the specified index to the last element.

public:
 int IndexOf(T item, int index);
public int IndexOf (T item, int index);
member this.IndexOf : 'T * int -> int
Public Function IndexOf (item As T, index As Integer) As Integer

パラメーター

item
T

List<T> 内で検索するオブジェクト。The object to locate in the List<T>. 参照型の場合は null の値を使用できます。The value can be null for reference types.

index
Int32

検索の開始位置を示す 0 から始まるインデックス。The zero-based starting index of the search. 空のリストでは 0 (ゼロ) は有効です。0 (zero) is valid in an empty list.

戻り値

index から最後の要素までの List<T> 内の要素の範囲内で item が見つかった場合は、最初に見つかった位置の 0 から始まるインデックス番号。それ以外の場合は -1。The zero-based index of the first occurrence of item within the range of elements in the List<T> that extends from index to the last element, if found; otherwise, -1.

例外

indexList<T> の有効なインデックスの範囲外です。index is outside the range of valid indexes for the List<T>.

次の例は、IndexOf メソッドの3つのオーバーロードすべてを示しています。The following example demonstrates all three overloads of the IndexOf method. インデックス位置0とインデックス位置5で、1つのエントリが2回表示される文字列の List<T> が作成されます。A List<T> of strings is created, with one entry that appears twice, at index location 0 and index location 5. IndexOf(T) メソッドオーバーロードは、先頭からリストを検索し、最初に見つかった文字列を検索します。The IndexOf(T) method overload searches the list from the beginning, and finds the first occurrence of the string. IndexOf(T, Int32) メソッドオーバーロードを使用して、インデックス位置3で始まるリストを検索し、リストの末尾まで進み、2番目に出現する文字列を検索します。The IndexOf(T, Int32) method overload is used to search the list beginning with index location 3 and continuing to the end of the list, and finds the second occurrence of the string. 最後に、インデックス位置2から始まる2つのエントリの範囲を検索するために、IndexOf(T, Int32, Int32) メソッドオーバーロードが使用されます。検索文字列のインスタンスがこの範囲内に存在しないため、-1 が返されます。Finally, the IndexOf(T, Int32, Int32) method overload is used to search a range of two entries, beginning at index location two; it returns -1 because there are no instances of the search string in that range.

using namespace System;
using namespace System::Collections::Generic;

void main()
{
    List<String^>^ dinosaurs = gcnew List<String^>();

    dinosaurs->Add("Tyrannosaurus");
    dinosaurs->Add("Amargasaurus");
    dinosaurs->Add("Mamenchisaurus");
    dinosaurs->Add("Brachiosaurus");
    dinosaurs->Add("Deinonychus");
    dinosaurs->Add("Tyrannosaurus");
    dinosaurs->Add("Compsognathus");

    Console::WriteLine();
    for each(String^ dinosaur in dinosaurs )
    {
        Console::WriteLine(dinosaur);
    }

    Console::WriteLine("\nIndexOf(\"Tyrannosaurus\"): {0}", 
        dinosaurs->IndexOf("Tyrannosaurus"));

    Console::WriteLine("\nIndexOf(\"Tyrannosaurus\", 3): {0}", 
        dinosaurs->IndexOf("Tyrannosaurus", 3));

    Console::WriteLine("\nIndexOf(\"Tyrannosaurus\", 2, 2): {0}", 
        dinosaurs->IndexOf("Tyrannosaurus", 2, 2));
}

/* This code example produces the following output:

Tyrannosaurus
Amargasaurus
Mamenchisaurus
Brachiosaurus
Deinonychus
Tyrannosaurus
Compsognathus

IndexOf("Tyrannosaurus"): 0

IndexOf("Tyrannosaurus", 3): 5

IndexOf("Tyrannosaurus", 2, 2): -1
 */
using System;
using System.Collections.Generic;

public class Example
{
    public static void Main()
    {
        List<string> dinosaurs = new List<string>();

        dinosaurs.Add("Tyrannosaurus");
        dinosaurs.Add("Amargasaurus");
        dinosaurs.Add("Mamenchisaurus");
        dinosaurs.Add("Brachiosaurus");
        dinosaurs.Add("Deinonychus");
        dinosaurs.Add("Tyrannosaurus");
        dinosaurs.Add("Compsognathus");

        Console.WriteLine();
        foreach(string dinosaur in dinosaurs)
        {
            Console.WriteLine(dinosaur);
        }

        Console.WriteLine("\nIndexOf(\"Tyrannosaurus\"): {0}", 
            dinosaurs.IndexOf("Tyrannosaurus"));

        Console.WriteLine("\nIndexOf(\"Tyrannosaurus\", 3): {0}", 
            dinosaurs.IndexOf("Tyrannosaurus", 3));

        Console.WriteLine("\nIndexOf(\"Tyrannosaurus\", 2, 2): {0}", 
            dinosaurs.IndexOf("Tyrannosaurus", 2, 2));
    }
}

/* This code example produces the following output:

Tyrannosaurus
Amargasaurus
Mamenchisaurus
Brachiosaurus
Deinonychus
Tyrannosaurus
Compsognathus

IndexOf("Tyrannosaurus"): 0

IndexOf("Tyrannosaurus", 3): 5

IndexOf("Tyrannosaurus", 2, 2): -1
 */
Imports System.Collections.Generic

Public Class Example

    Public Shared Sub Main()

        Dim dinosaurs As New List(Of String)

        dinosaurs.Add("Tyrannosaurus")
        dinosaurs.Add("Amargasaurus")
        dinosaurs.Add("Mamenchisaurus")
        dinosaurs.Add("Brachiosaurus")
        dinosaurs.Add("Deinonychus")
        dinosaurs.Add("Tyrannosaurus")
        dinosaurs.Add("Compsognathus")

        Console.WriteLine()
        For Each dinosaur As String In dinosaurs
            Console.WriteLine(dinosaur)
        Next

        Console.WriteLine(vbLf & _
            "IndexOf(""Tyrannosaurus""): {0}", _
            dinosaurs.IndexOf("Tyrannosaurus"))

        Console.WriteLine(vbLf & _
            "IndexOf(""Tyrannosaurus"", 3): {0}", _
            dinosaurs.IndexOf("Tyrannosaurus", 3))

        Console.WriteLine(vbLf & _
            "IndexOf(""Tyrannosaurus"", 2, 2): {0}", _
            dinosaurs.IndexOf("Tyrannosaurus", 2, 2))

    End Sub
End Class

' This code example produces the following output:
'
'Tyrannosaurus
'Amargasaurus
'Mamenchisaurus
'Brachiosaurus
'Deinonychus
'Tyrannosaurus
'Compsognathus
'
'IndexOf("Tyrannosaurus"): 0
'
'IndexOf("Tyrannosaurus", 3): 5
'
'IndexOf("Tyrannosaurus", 2, 2): -1

注釈

List<T> は、index から最後の要素までの順に検索されます。The List<T> is searched forward starting at index and ending at the last element.

このメソッドは、リスト内の値の型 TEqualityComparer<T>.Default 既定の等値比較子を使用して、等しいかどうかを判断します。This method determines equality using the default equality comparer EqualityComparer<T>.Default for T, the type of values in the list.

このメソッドは、線形検索を実行します。したがって、このメソッドは O (n) 演算です。ここで、 nは、List<T>index から最後までの要素の数です。This method performs a linear search; therefore, this method is an O(n) operation, where n is the number of elements from index to the end of the List<T>.

こちらもご覧ください

IndexOf(T, Int32, Int32)

指定したインデックスから始まり、指定した数の要素が含まれる List<T> の要素範囲内で、指定したオブジェクトを検索し、最初に出現する位置の 0 から始まるインデックス番号を返します。Searches for the specified object and returns the zero-based index of the first occurrence within the range of elements in the List<T> that starts at the specified index and contains the specified number of elements.

public:
 int IndexOf(T item, int index, int count);
public int IndexOf (T item, int index, int count);
member this.IndexOf : 'T * int * int -> int
Public Function IndexOf (item As T, index As Integer, count As Integer) As Integer

パラメーター

item
T

List<T> 内で検索するオブジェクト。The object to locate in the List<T>. 参照型の場合は null の値を使用できます。The value can be null for reference types.

index
Int32

検索の開始位置を示す 0 から始まるインデックス。The zero-based starting index of the search. 空のリストでは 0 (ゼロ) は有効です。0 (zero) is valid in an empty list.

count
Int32

検索対象の範囲内にある要素の数。The number of elements in the section to search.

戻り値

index から始まって count 個の要素を格納する List<T> 内の要素の範囲内で item が見つかった場合は、最初に見つかった位置の 0 から始まるインデックス番号。それ以外の場合は -1。The zero-based index of the first occurrence of item within the range of elements in the List<T> that starts at index and contains count number of elements, if found; otherwise, -1.

例外

indexList<T> の有効なインデックスの範囲外です。index is outside the range of valid indexes for the List<T>.

- または --or- count が 0 未満です。count is less than 0.

- または --or- index および countList<T> 内の正しいセクションを指定していません。index and count do not specify a valid section in the List<T>.

次の例は、IndexOf メソッドの3つのオーバーロードすべてを示しています。The following example demonstrates all three overloads of the IndexOf method. インデックス位置0とインデックス位置5で、1つのエントリが2回表示される文字列の List<T> が作成されます。A List<T> of strings is created, with one entry that appears twice, at index location 0 and index location 5. IndexOf(T) メソッドオーバーロードは、先頭からリストを検索し、最初に見つかった文字列を検索します。The IndexOf(T) method overload searches the list from the beginning, and finds the first occurrence of the string. IndexOf(T, Int32) メソッドオーバーロードを使用して、インデックス位置3で始まるリストを検索し、リストの末尾まで進み、2番目に出現する文字列を検索します。The IndexOf(T, Int32) method overload is used to search the list beginning with index location 3 and continuing to the end of the list, and finds the second occurrence of the string. 最後に、インデックス位置2から始まる2つのエントリの範囲を検索するために、IndexOf(T, Int32, Int32) メソッドオーバーロードが使用されます。検索文字列のインスタンスがこの範囲内に存在しないため、-1 が返されます。Finally, the IndexOf(T, Int32, Int32) method overload is used to search a range of two entries, beginning at index location two; it returns -1 because there are no instances of the search string in that range.

using namespace System;
using namespace System::Collections::Generic;

void main()
{
    List<String^>^ dinosaurs = gcnew List<String^>();

    dinosaurs->Add("Tyrannosaurus");
    dinosaurs->Add("Amargasaurus");
    dinosaurs->Add("Mamenchisaurus");
    dinosaurs->Add("Brachiosaurus");
    dinosaurs->Add("Deinonychus");
    dinosaurs->Add("Tyrannosaurus");
    dinosaurs->Add("Compsognathus");

    Console::WriteLine();
    for each(String^ dinosaur in dinosaurs )
    {
        Console::WriteLine(dinosaur);
    }

    Console::WriteLine("\nIndexOf(\"Tyrannosaurus\"): {0}", 
        dinosaurs->IndexOf("Tyrannosaurus"));

    Console::WriteLine("\nIndexOf(\"Tyrannosaurus\", 3): {0}", 
        dinosaurs->IndexOf("Tyrannosaurus", 3));

    Console::WriteLine("\nIndexOf(\"Tyrannosaurus\", 2, 2): {0}", 
        dinosaurs->IndexOf("Tyrannosaurus", 2, 2));
}

/* This code example produces the following output:

Tyrannosaurus
Amargasaurus
Mamenchisaurus
Brachiosaurus
Deinonychus
Tyrannosaurus
Compsognathus

IndexOf("Tyrannosaurus"): 0

IndexOf("Tyrannosaurus", 3): 5

IndexOf("Tyrannosaurus", 2, 2): -1
 */
using System;
using System.Collections.Generic;

public class Example
{
    public static void Main()
    {
        List<string> dinosaurs = new List<string>();

        dinosaurs.Add("Tyrannosaurus");
        dinosaurs.Add("Amargasaurus");
        dinosaurs.Add("Mamenchisaurus");
        dinosaurs.Add("Brachiosaurus");
        dinosaurs.Add("Deinonychus");
        dinosaurs.Add("Tyrannosaurus");
        dinosaurs.Add("Compsognathus");

        Console.WriteLine();
        foreach(string dinosaur in dinosaurs)
        {
            Console.WriteLine(dinosaur);
        }

        Console.WriteLine("\nIndexOf(\"Tyrannosaurus\"): {0}", 
            dinosaurs.IndexOf("Tyrannosaurus"));

        Console.WriteLine("\nIndexOf(\"Tyrannosaurus\", 3): {0}", 
            dinosaurs.IndexOf("Tyrannosaurus", 3));

        Console.WriteLine("\nIndexOf(\"Tyrannosaurus\", 2, 2): {0}", 
            dinosaurs.IndexOf("Tyrannosaurus", 2, 2));
    }
}

/* This code example produces the following output:

Tyrannosaurus
Amargasaurus
Mamenchisaurus
Brachiosaurus
Deinonychus
Tyrannosaurus
Compsognathus

IndexOf("Tyrannosaurus"): 0

IndexOf("Tyrannosaurus", 3): 5

IndexOf("Tyrannosaurus", 2, 2): -1
 */
Imports System.Collections.Generic

Public Class Example

    Public Shared Sub Main()

        Dim dinosaurs As New List(Of String)

        dinosaurs.Add("Tyrannosaurus")
        dinosaurs.Add("Amargasaurus")
        dinosaurs.Add("Mamenchisaurus")
        dinosaurs.Add("Brachiosaurus")
        dinosaurs.Add("Deinonychus")
        dinosaurs.Add("Tyrannosaurus")
        dinosaurs.Add("Compsognathus")

        Console.WriteLine()
        For Each dinosaur As String In dinosaurs
            Console.WriteLine(dinosaur)
        Next

        Console.WriteLine(vbLf & _
            "IndexOf(""Tyrannosaurus""): {0}", _
            dinosaurs.IndexOf("Tyrannosaurus"))

        Console.WriteLine(vbLf & _
            "IndexOf(""Tyrannosaurus"", 3): {0}", _
            dinosaurs.IndexOf("Tyrannosaurus", 3))

        Console.WriteLine(vbLf & _
            "IndexOf(""Tyrannosaurus"", 2, 2): {0}", _
            dinosaurs.IndexOf("Tyrannosaurus", 2, 2))

    End Sub
End Class

' This code example produces the following output:
'
'Tyrannosaurus
'Amargasaurus
'Mamenchisaurus
'Brachiosaurus
'Deinonychus
'Tyrannosaurus
'Compsognathus
'
'IndexOf("Tyrannosaurus"): 0
'
'IndexOf("Tyrannosaurus", 3): 5
'
'IndexOf("Tyrannosaurus", 2, 2): -1

注釈

List<T>index から順に検索され、index プラス count-1 (count が0を超える場合) が終わります。The List<T> is searched forward starting at index and ending at index plus count minus 1, if count is greater than 0.

このメソッドは、リスト内の値の型 TEqualityComparer<T>.Default 既定の等値比較子を使用して、等しいかどうかを判断します。This method determines equality using the default equality comparer EqualityComparer<T>.Default for T, the type of values in the list.

このメソッドは、線形検索を実行します。したがって、このメソッドは O (n) 操作です。ここで、 ncountです。This method performs a linear search; therefore, this method is an O(n) operation, where n is count.

こちらもご覧ください

IndexOf(T)

指定したオブジェクトを検索し、List<T> 全体内で最初に見つかった位置の 0 から始まるインデックスを返します。Searches for the specified object and returns the zero-based index of the first occurrence within the entire List<T>.

public:
 virtual int IndexOf(T item);
public int IndexOf (T item);
abstract member IndexOf : 'T -> int
override this.IndexOf : 'T -> int
Public Function IndexOf (item As T) As Integer

パラメーター

item
T

List<T> 内で検索するオブジェクト。The object to locate in the List<T>. 参照型の場合は null の値を使用できます。The value can be null for reference types.

戻り値

List<T> 全体を対象に item を検索し、見つかった場合は、インデックス番号の最も小さい要素の 0 から始まるインデックス番号、それ以外の場合は -1。The zero-based index of the first occurrence of item within the entire List<T>, if found; otherwise, -1.

実装

次の例は、IndexOf メソッドの3つのオーバーロードすべてを示しています。The following example demonstrates all three overloads of the IndexOf method. インデックス位置0とインデックス位置5で、1つのエントリが2回表示される文字列の List<T> が作成されます。A List<T> of strings is created, with one entry that appears twice, at index location 0 and index location 5. IndexOf(T) メソッドオーバーロードは、先頭からリストを検索し、最初に見つかった文字列を検索します。The IndexOf(T) method overload searches the list from the beginning, and finds the first occurrence of the string. IndexOf(T, Int32) メソッドオーバーロードを使用して、インデックス位置3で始まるリストを検索し、リストの末尾まで進み、2番目に出現する文字列を検索します。The IndexOf(T, Int32) method overload is used to search the list beginning with index location 3 and continuing to the end of the list, and finds the second occurrence of the string. 最後に、インデックス位置2から始まる2つのエントリの範囲を検索するために、IndexOf(T, Int32, Int32) メソッドオーバーロードが使用されます。検索文字列のインスタンスがこの範囲内に存在しないため、-1 が返されます。Finally, the IndexOf(T, Int32, Int32) method overload is used to search a range of two entries, beginning at index location two; it returns -1 because there are no instances of the search string in that range.

using namespace System;
using namespace System::Collections::Generic;

void main()
{
    List<String^>^ dinosaurs = gcnew List<String^>();

    dinosaurs->Add("Tyrannosaurus");
    dinosaurs->Add("Amargasaurus");
    dinosaurs->Add("Mamenchisaurus");
    dinosaurs->Add("Brachiosaurus");
    dinosaurs->Add("Deinonychus");
    dinosaurs->Add("Tyrannosaurus");
    dinosaurs->Add("Compsognathus");

    Console::WriteLine();
    for each(String^ dinosaur in dinosaurs )
    {
        Console::WriteLine(dinosaur);
    }

    Console::WriteLine("\nIndexOf(\"Tyrannosaurus\"): {0}", 
        dinosaurs->IndexOf("Tyrannosaurus"));

    Console::WriteLine("\nIndexOf(\"Tyrannosaurus\", 3): {0}", 
        dinosaurs->IndexOf("Tyrannosaurus", 3));

    Console::WriteLine("\nIndexOf(\"Tyrannosaurus\", 2, 2): {0}", 
        dinosaurs->IndexOf("Tyrannosaurus", 2, 2));
}

/* This code example produces the following output:

Tyrannosaurus
Amargasaurus
Mamenchisaurus
Brachiosaurus
Deinonychus
Tyrannosaurus
Compsognathus

IndexOf("Tyrannosaurus"): 0

IndexOf("Tyrannosaurus", 3): 5

IndexOf("Tyrannosaurus", 2, 2): -1
 */
using System;
using System.Collections.Generic;

public class Example
{
    public static void Main()
    {
        List<string> dinosaurs = new List<string>();

        dinosaurs.Add("Tyrannosaurus");
        dinosaurs.Add("Amargasaurus");
        dinosaurs.Add("Mamenchisaurus");
        dinosaurs.Add("Brachiosaurus");
        dinosaurs.Add("Deinonychus");
        dinosaurs.Add("Tyrannosaurus");
        dinosaurs.Add("Compsognathus");

        Console.WriteLine();
        foreach(string dinosaur in dinosaurs)
        {
            Console.WriteLine(dinosaur);
        }

        Console.WriteLine("\nIndexOf(\"Tyrannosaurus\"): {0}", 
            dinosaurs.IndexOf("Tyrannosaurus"));

        Console.WriteLine("\nIndexOf(\"Tyrannosaurus\", 3): {0}", 
            dinosaurs.IndexOf("Tyrannosaurus", 3));

        Console.WriteLine("\nIndexOf(\"Tyrannosaurus\", 2, 2): {0}", 
            dinosaurs.IndexOf("Tyrannosaurus", 2, 2));
    }
}

/* This code example produces the following output:

Tyrannosaurus
Amargasaurus
Mamenchisaurus
Brachiosaurus
Deinonychus
Tyrannosaurus
Compsognathus

IndexOf("Tyrannosaurus"): 0

IndexOf("Tyrannosaurus", 3): 5

IndexOf("Tyrannosaurus", 2, 2): -1
 */
Imports System.Collections.Generic

Public Class Example

    Public Shared Sub Main()

        Dim dinosaurs As New List(Of String)

        dinosaurs.Add("Tyrannosaurus")
        dinosaurs.Add("Amargasaurus")
        dinosaurs.Add("Mamenchisaurus")
        dinosaurs.Add("Brachiosaurus")
        dinosaurs.Add("Deinonychus")
        dinosaurs.Add("Tyrannosaurus")
        dinosaurs.Add("Compsognathus")

        Console.WriteLine()
        For Each dinosaur As String In dinosaurs
            Console.WriteLine(dinosaur)
        Next

        Console.WriteLine(vbLf & _
            "IndexOf(""Tyrannosaurus""): {0}", _
            dinosaurs.IndexOf("Tyrannosaurus"))

        Console.WriteLine(vbLf & _
            "IndexOf(""Tyrannosaurus"", 3): {0}", _
            dinosaurs.IndexOf("Tyrannosaurus", 3))

        Console.WriteLine(vbLf & _
            "IndexOf(""Tyrannosaurus"", 2, 2): {0}", _
            dinosaurs.IndexOf("Tyrannosaurus", 2, 2))

    End Sub
End Class

' This code example produces the following output:
'
'Tyrannosaurus
'Amargasaurus
'Mamenchisaurus
'Brachiosaurus
'Deinonychus
'Tyrannosaurus
'Compsognathus
'
'IndexOf("Tyrannosaurus"): 0
'
'IndexOf("Tyrannosaurus", 3): 5
'
'IndexOf("Tyrannosaurus", 2, 2): -1

注釈

List<T> は、最初の要素から最後の要素まで順に検索されます。The List<T> is searched forward starting at the first element and ending at the last element.

このメソッドは、リスト内の値の型 TEqualityComparer<T>.Default 既定の等値比較子を使用して、等しいかどうかを判断します。This method determines equality using the default equality comparer EqualityComparer<T>.Default for T, the type of values in the list.

このメソッドは、線形検索を実行します。したがって、このメソッドは O (n) 操作です。ここで、 nCountです。This method performs a linear search; therefore, this method is an O(n) operation, where n is Count.

こちらもご覧ください

適用対象