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

注解

将从最后一个元素开始向前搜索并结束。index List<T>The 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,则从开始向前搜索,并在plus减1处结束。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), 其中 n count是。This 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.

返回

如果找到,则为整个 itemList<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), 其中 n Count是。This method performs a linear search; therefore, this method is an O(n) operation, where n is Count.

另请参阅

适用于