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 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)

Source:
List.cs
Source:
List.cs
Source:
List.cs
Source:
List.cs
Source:
List.cs

搜索指定的对象,并在从指定索引扩展到最后一个元素的元素 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 (零)在空列表中有效。

返回

如果找到,则从item第一个匹配项到最后一个元素范围内的第List<T>一个匹配index项的从零开始的索引;否则为 -1。

例外

index 超出有效索引 List<T>的范围。

注解

List<T>从最后一个元素开始index和结束,搜索前方。

此方法使用列表中值类型的默认相等比较器EqualityComparer<T>.DefaultT确定相等性。

此方法执行线性搜索;因此,此方法是一个 O(n) 运算,其中 n 是元素数,从 index 到末尾 List<T>

另请参阅

适用于

IndexOf(T, Int32, Int32)

Source:
List.cs
Source:
List.cs
Source:
List.cs
Source:
List.cs
Source:
List.cs

搜索指定的对象,并返回从指定索引开始的元素 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

要搜索的节中的元素数。

返回

从零开始且包含item元素数的元素List<T>index范围内的第一个匹配count项的从零开始的索引(如果找到);否则为 -1。

例外

index 超出有效索引 List<T>的范围。

-或-

count 小于 0。

-或-

indexcount 未在 .. 中 List<T>指定有效节。

注解

List<T>如果大于 0,index则从加index减 1 开始count和结束count搜索前方。

此方法使用列表中值类型的默认相等比较器EqualityComparer<T>.DefaultT确定相等性。

此方法执行线性搜索;因此,此方法是 O(n) 操作,其中 ncount

另请参阅

适用于

IndexOf(T)

Source:
List.cs
Source:
List.cs
Source:
List.cs
Source:
List.cs
Source:
List.cs

搜索指定的对象并返回整个 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 用于引用类型。

返回

如果找到,则为整个item内第一个匹配项List<T>的从零开始的索引;否则为 -1。

实现

注解

List<T>搜索从第一个元素开始,最后一个元素结束。

此方法使用列表中值类型的默认相等比较器EqualityComparer<T>.DefaultT确定相等性。

此方法执行线性搜索;因此,此方法是 O(n) 操作,其中 nCount

另请参阅

适用于