List<T>.IndexOf List<T>.IndexOf List<T>.IndexOf List<T>.IndexOf Method

定義

傳回 List<T> 或其中一部分中,第一次出現某值之以零為起始的索引。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) IndexOf(T, Int32) IndexOf(T, Int32) IndexOf(T, Int32)

List<T> 中從指定的索引開始到最後一個項目這段範圍內,搜尋指定的物件第一次出現的位置,並傳回其索引值 (索引以零起始)。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) IndexOf(T, Int32, Int32) IndexOf(T, Int32, Int32) IndexOf(T, Int32, Int32)

List<T> 中從指定索引開始且包含指定個數項目的範圍內,搜尋指定的物件第一次出現的位置,並傳回其索引值 (索引以零為起始)。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) IndexOf(T) IndexOf(T) IndexOf(T)

搜尋指定的物件,並傳回整個 List<T> 中第一個相符項目之以零起始的索引。Searches for the specified object and returns the zero-based index of the first occurrence within the entire List<T>.

IndexOf(T, Int32) IndexOf(T, Int32) IndexOf(T, Int32) IndexOf(T, Int32)

List<T> 中從指定的索引開始到最後一個項目這段範圍內,搜尋指定的物件第一次出現的位置,並傳回其索引值 (索引以零起始)。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 T T T

要在 List<T> 中尋找的物件。The object to locate in the List<T>. 參考類型的值可以是 nullThe value can be null for reference types.

index
Int32 Int32 Int32 Int32

搜尋之以零為起始的起始索引。The zero-based starting index of the search. 0 (零) 在空白清單中有效。0 (zero) is valid in an empty list.

傳回

List<T> 中從 index 開始到最後一個元素的範圍內,第一次出現 item 的位置之以零為起始的索引 (如有找到),如未找到則為 -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.

例外狀況

index 超出 List<T> 的有效索引範圍。index is outside the range of valid indexes for the List<T>.

範例

下列範例示範IndexOf方法的所有三個多載。The following example demonstrates all three overloads of the IndexOf method. List<T>會建立字串的, 其中一個專案出現兩次, 索引位置為 0, 索引位置為5。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並繼續到清單結尾的清單, 並尋找第二個出現的字串。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. 最後, 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
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> indexThe List<T> is searched forward starting at index and ending at the last element.

這個方法會使用的預設相等比較EqualityComparer<T>.Default子 (清單中的數值型別) 來T判斷是否相等。This method determines equality using the default equality comparer EqualityComparer<T>.Default for T, the type of values in the list.

這個方法會執行線性搜尋;因此, 這個方法是 O (n) 運算, 其中n是從index到結尾List<T>的元素數。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) IndexOf(T, Int32, Int32) IndexOf(T, Int32, Int32) IndexOf(T, Int32, Int32)

List<T> 中從指定索引開始且包含指定個數項目的範圍內,搜尋指定的物件第一次出現的位置,並傳回其索引值 (索引以零為起始)。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 T T T

要在 List<T> 中尋找的物件。The object to locate in the List<T>. 參考類型的值可以是 nullThe value can be null for reference types.

index
Int32 Int32 Int32 Int32

搜尋之以零為起始的起始索引。The zero-based starting index of the search. 0 (零) 在空白清單中有效。0 (zero) is valid in an empty list.

count
Int32 Int32 Int32 Int32

區段中要搜尋的項目數目。The number of elements in the section to search.

傳回

List<T> 中從 index 開始且包含 count 個元素的範圍內,第一次出現 item 之以零為起始的索引,如未找到則為 -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.

例外狀況

index 超出 List<T> 的有效索引範圍。index is outside the range of valid indexes for the List<T>.

-或--or- count 小於 0。count is less than 0.

-或--or- indexcount 不指定 List<T> 的有效區段。index and count do not specify a valid section in the List<T>.

範例

下列範例示範IndexOf方法的所有三個多載。The following example demonstrates all three overloads of the IndexOf method. List<T>會建立字串的, 其中一個專案出現兩次, 索引位置為 0, 索引位置為5。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並繼續到清單結尾的清單, 並尋找第二個出現的字串。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. 最後, 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
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

備註

index index count如果List<T> 大於0,則會從開始搜尋,並于正的正處結束。countThe List<T> is searched forward starting at index and ending at index plus count minus 1, if count is greater than 0.

這個方法會使用的預設相等比較EqualityComparer<T>.Default子 (清單中的數值型別) 來T判斷是否相等。This method determines equality using the default equality comparer EqualityComparer<T>.Default for T, the type of values in the list.

這個方法會執行線性搜尋;因此, 這個方法是 O (n) 運算, 其中ncountThis method performs a linear search; therefore, this method is an O(n) operation, where n is count.

另請參閱

IndexOf(T) IndexOf(T) IndexOf(T) IndexOf(T)

搜尋指定的物件,並傳回整個 List<T> 中第一個相符項目之以零起始的索引。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 T T T

要在 List<T> 中尋找的物件。The object to locate in the List<T>. 參考類型的值可以是 nullThe value can be null for reference types.

傳回

整個 item 中第一個出現 List<T> 之以零為起始的索引 (如有找到),否則為 -1。The zero-based index of the first occurrence of item within the entire List<T>, if found; otherwise, -1.

實作

範例

下列範例示範IndexOf方法的所有三個多載。The following example demonstrates all three overloads of the IndexOf method. List<T>會建立字串的, 其中一個專案出現兩次, 索引位置為 0, 索引位置為5。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並繼續到清單結尾的清單, 並尋找第二個出現的字串。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. 最後, 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
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.

這個方法會使用的預設相等比較EqualityComparer<T>.Default子 (清單中的數值型別) 來T判斷是否相等。This method determines equality using the default equality comparer EqualityComparer<T>.Default for T, the type of values in the list.

這個方法會執行線性搜尋;因此, 這個方法是 O (n) 運算, 其中nCountThis method performs a linear search; therefore, this method is an O(n) operation, where n is Count.

另請參閱

適用於