List<T>.IndexOf 方法

定義

傳回 List<T> 或其中一部分中,第一次出現某值之以零為起始的索引。

多載

IndexOf(T, Int32)

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

IndexOf(T, Int32, Int32)

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

IndexOf(T)

搜尋指定的物件,並傳回整個 List<T> 中第一個出現之以零為起始的索引。

範例

下列範例示範 方法的所有三個 IndexOf 多載。 系統會建立字串的 , List<T> 其中一個專案會出現兩次,位於索引位置 0 和索引位置 5。 方法 IndexOf(T) 多載會從開頭搜尋清單,並尋找第一次出現的字串。 方法 IndexOf(T, Int32) 多載是用來搜尋以索引位置 3 開頭的清單,並繼續到清單結尾,並尋找第二個出現的字串。 最後, IndexOf(T, Int32, Int32) 方法多載是用來搜尋兩個專案的範圍,從索引位置 2 開始;它會傳回 -1,因為該範圍中沒有搜尋字串的實例。

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

IndexOf(T, Int32)

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

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> 中尋找的物件。 參考類型的值可以是 null

index
Int32

搜尋之以零為起始的起始索引。 0 (零) 在空白清單中有效。

傳回

Int32

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

例外狀況

index 超出 List<T> 的有效索引範圍。

備註

List<T>會從 最後 index 一個元素開始和結束搜尋。

這個方法會使用 清單中數值型別的預設相等比較子 EqualityComparer<T>.Default T 來判斷相等。

此方法會執行線性搜尋;因此,此方法是 O (n) 作業,其中 n 是 從 index 到 結尾的專案 List<T> 數目。

另請參閱

適用於

IndexOf(T, Int32, Int32)

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

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> 中尋找的物件。 參考類型的值可以是 null

index
Int32

搜尋之以零為起始的起始索引。 0 (零) 在空白清單中有效。

count
Int32

區段中要搜尋的項目數目。

傳回

Int32

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

例外狀況

index 超出 List<T> 的有效索引範圍。

-或- count 小於 0。

-或- indexcount 不指定 List<T> 的有效區段。

備註

List<T>如果 大於 0, count 則會從 開始 index 搜尋 ,並結束于 indexcount 號減 1。

這個方法會使用 清單中數值型別的預設相等比較子 EqualityComparer<T>.Default T 來判斷相等。

此方法會執行線性搜尋;因此,這個方法是 o (n) 作業,其中 ncount

另請參閱

適用於

IndexOf(T)

搜尋指定的物件,並傳回整個 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> 中尋找的物件。 參考類型的值可以是 null

傳回

Int32

整個 item 中第一個出現 List<T> 之以零為起始的索引 (如有找到),否則為 -1。

實作

備註

List<T>會從第一個專案開始向前搜尋,並結束于最後一個專案。

這個方法會使用 清單中數值型別的預設相等比較子 EqualityComparer<T>.Default T 來判斷相等。

此方法會執行線性搜尋;因此,這個方法是 o (n) 作業,其中 nCount

另請參閱

適用於