List<T>.LastIndexOf List<T>.LastIndexOf List<T>.LastIndexOf List<T>.LastIndexOf Method

定义

返回 List<T> 或它的一部分中某个值的最后一个匹配项的从零开始的索引。Returns the zero-based index of the last occurrence of a value in the List<T> or in a portion of it.

重载

LastIndexOf(T) LastIndexOf(T) LastIndexOf(T) LastIndexOf(T)

搜索指定的对象,并返回整个 List<T> 中最后一个匹配项的从零开始的索引。Searches for the specified object and returns the zero-based index of the last occurrence within the entire List<T>.

LastIndexOf(T, Int32) LastIndexOf(T, Int32) LastIndexOf(T, Int32) LastIndexOf(T, Int32)

搜索指定的对象,并返回 List<T> 中从第一个元素到指定索引的元素范围内最后一个匹配项的从零开始的索引。Searches for the specified object and returns the zero-based index of the last occurrence within the range of elements in the List<T> that extends from the first element to the specified index.

LastIndexOf(T, Int32, Int32) LastIndexOf(T, Int32, Int32) LastIndexOf(T, Int32, Int32) LastIndexOf(T, Int32, Int32)

搜索指定对象并返回 List<T> 中到指定索引为止包含指定元素数的这部分元素中最后一个匹配项的从零开始索引。Searches for the specified object and returns the zero-based index of the last occurrence within the range of elements in the List<T> that contains the specified number of elements and ends at the specified index.

LastIndexOf(T) LastIndexOf(T) LastIndexOf(T) LastIndexOf(T)

搜索指定的对象,并返回整个 List<T> 中最后一个匹配项的从零开始的索引。Searches for the specified object and returns the zero-based index of the last occurrence within the entire List<T>.

public:
 int LastIndexOf(T item);
public int LastIndexOf (T item);
member this.LastIndexOf : 'T -> int
Public Function LastIndexOf (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.

返回

如果在整个 List<T> 中找到 item 的最后一个匹配项,则为该项的从零开始的索引;否则为 -1。The zero-based index of the last occurrence of item within the entire the List<T>, if found; otherwise, -1.

示例

下面的示例演示LastIndexOf方法的所有三个重载。The following example demonstrates all three overloads of the LastIndexOf 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. LastIndexOf(T)方法重载从末尾搜索整个列表, 并查找字符串的第二个匹配项。The LastIndexOf(T) method overload searches the entire list from the end, and finds the second occurrence of the string. LastIndexOf(T, Int32)方法重载用于在列表中从索引位置3开始向后搜索, 并延续到列表的开头, 以便在列表中找到该字符串的第一个匹配项。The LastIndexOf(T, Int32) method overload is used to search the list backward beginning with index location 3 and continuing to the beginning of the list, so it finds the first occurrence of the string in the list. 最后, LastIndexOf(T, Int32, Int32)方法重载用于搜索由四个条目组成的范围, 从索引位置4开始并向后扩展 (也就是说, 它会搜索位于4、3、2和1位置的项); 此搜索将返回-1, 因为没有搜索实例此范围内的字符串。Finally, the LastIndexOf(T, Int32, Int32) method overload is used to search a range of four entries, beginning at index location 4 and extending backward (that is, it searches the items at locations 4, 3, 2, and 1); this search 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("\nLastIndexOf(\"Tyrannosaurus\"): {0}", 
        dinosaurs->LastIndexOf("Tyrannosaurus"));

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

    Console::WriteLine("\nLastIndexOf(\"Tyrannosaurus\", 4, 4): {0}", 
        dinosaurs->LastIndexOf("Tyrannosaurus", 4, 4));
}

/* This code example produces the following output:

Tyrannosaurus
Amargasaurus
Mamenchisaurus
Brachiosaurus
Deinonychus
Tyrannosaurus
Compsognathus

LastIndexOf("Tyrannosaurus"): 5

LastIndexOf("Tyrannosaurus", 3): 0

LastIndexOf("Tyrannosaurus", 4, 4): -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("\nLastIndexOf(\"Tyrannosaurus\"): {0}", 
            dinosaurs.LastIndexOf("Tyrannosaurus"));

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

        Console.WriteLine("\nLastIndexOf(\"Tyrannosaurus\", 4, 4): {0}", 
            dinosaurs.LastIndexOf("Tyrannosaurus", 4, 4));
    }
}

/* This code example produces the following output:

Tyrannosaurus
Amargasaurus
Mamenchisaurus
Brachiosaurus
Deinonychus
Tyrannosaurus
Compsognathus

LastIndexOf("Tyrannosaurus"): 5

LastIndexOf("Tyrannosaurus", 3): 0

LastIndexOf("Tyrannosaurus", 4, 4): -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 & _
            "LastIndexOf(""Tyrannosaurus""): {0}", _
            dinosaurs.LastIndexOf("Tyrannosaurus"))

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

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

    End Sub
End Class

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

注解

List<T>向后搜索从最后一个元素开始, 到第一个元素结束。The List<T> is searched backward starting at the last element and ending at the first 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.

另请参阅

LastIndexOf(T, Int32) LastIndexOf(T, Int32) LastIndexOf(T, Int32) LastIndexOf(T, Int32)

搜索指定的对象,并返回 List<T> 中从第一个元素到指定索引的元素范围内最后一个匹配项的从零开始的索引。Searches for the specified object and returns the zero-based index of the last occurrence within the range of elements in the List<T> that extends from the first element to the specified index.

public:
 int LastIndexOf(T item, int index);
public int LastIndexOf (T item, int index);
member this.LastIndexOf : 'T * int -> int
Public Function LastIndexOf (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 backward search.

返回

如果找到,则返回在 List<T> 中从第一个元素到 index 的元素范围内找到 item 的最后一个匹配项的从零开始的索引;否则为 -1。The zero-based index of the last occurrence of item within the range of elements in the List<T> that extends from the first element to index, if found; otherwise, -1.

异常

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

示例

下面的示例演示LastIndexOf方法的所有三个重载。The following example demonstrates all three overloads of the LastIndexOf 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. LastIndexOf(T)方法重载从末尾搜索整个列表, 并查找字符串的第二个匹配项。The LastIndexOf(T) method overload searches the entire list from the end, and finds the second occurrence of the string. LastIndexOf(T, Int32)方法重载用于在列表中从索引位置3开始向后搜索, 并延续到列表的开头, 以便在列表中找到该字符串的第一个匹配项。The LastIndexOf(T, Int32) method overload is used to search the list backward beginning with index location 3 and continuing to the beginning of the list, so it finds the first occurrence of the string in the list. 最后, LastIndexOf(T, Int32, Int32)方法重载用于搜索由四个条目组成的范围, 从索引位置4开始并向后扩展 (也就是说, 它会搜索位于4、3、2和1位置的项); 此搜索将返回-1, 因为没有搜索实例此范围内的字符串。Finally, the LastIndexOf(T, Int32, Int32) method overload is used to search a range of four entries, beginning at index location 4 and extending backward (that is, it searches the items at locations 4, 3, 2, and 1); this search 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("\nLastIndexOf(\"Tyrannosaurus\"): {0}", 
        dinosaurs->LastIndexOf("Tyrannosaurus"));

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

    Console::WriteLine("\nLastIndexOf(\"Tyrannosaurus\", 4, 4): {0}", 
        dinosaurs->LastIndexOf("Tyrannosaurus", 4, 4));
}

/* This code example produces the following output:

Tyrannosaurus
Amargasaurus
Mamenchisaurus
Brachiosaurus
Deinonychus
Tyrannosaurus
Compsognathus

LastIndexOf("Tyrannosaurus"): 5

LastIndexOf("Tyrannosaurus", 3): 0

LastIndexOf("Tyrannosaurus", 4, 4): -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("\nLastIndexOf(\"Tyrannosaurus\"): {0}", 
            dinosaurs.LastIndexOf("Tyrannosaurus"));

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

        Console.WriteLine("\nLastIndexOf(\"Tyrannosaurus\", 4, 4): {0}", 
            dinosaurs.LastIndexOf("Tyrannosaurus", 4, 4));
    }
}

/* This code example produces the following output:

Tyrannosaurus
Amargasaurus
Mamenchisaurus
Brachiosaurus
Deinonychus
Tyrannosaurus
Compsognathus

LastIndexOf("Tyrannosaurus"): 5

LastIndexOf("Tyrannosaurus", 3): 0

LastIndexOf("Tyrannosaurus", 4, 4): -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 & _
            "LastIndexOf(""Tyrannosaurus""): {0}", _
            dinosaurs.LastIndexOf("Tyrannosaurus"))

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

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

    End Sub
End Class

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

注解

List<T>后搜索index从第一个元素开始和结束的位置。The List<T> is searched backward starting at index and ending at the first 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是从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 the beginning of the List<T> to index.

另请参阅

LastIndexOf(T, Int32, Int32) LastIndexOf(T, Int32, Int32) LastIndexOf(T, Int32, Int32) LastIndexOf(T, Int32, Int32)

搜索指定对象并返回 List<T> 中到指定索引为止包含指定元素数的这部分元素中最后一个匹配项的从零开始索引。Searches for the specified object and returns the zero-based index of the last occurrence within the range of elements in the List<T> that contains the specified number of elements and ends at the specified index.

public:
 int LastIndexOf(T item, int index, int count);
public int LastIndexOf (T item, int index, int count);
member this.LastIndexOf : 'T * int * int -> int
Public Function LastIndexOf (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 backward search.

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 last occurrence of item within the range of elements in the List<T> that contains count number of elements and ends at index, 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>.

示例

下面的示例演示LastIndexOf方法的所有三个重载。The following example demonstrates all three overloads of the LastIndexOf 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. LastIndexOf(T)方法重载从末尾搜索整个列表, 并查找字符串的第二个匹配项。The LastIndexOf(T) method overload searches the entire list from the end, and finds the second occurrence of the string. LastIndexOf(T, Int32)方法重载用于在列表中从索引位置3开始向后搜索, 并延续到列表的开头, 以便在列表中找到该字符串的第一个匹配项。The LastIndexOf(T, Int32) method overload is used to search the list backward beginning with index location 3 and continuing to the beginning of the list, so it finds the first occurrence of the string in the list. 最后, LastIndexOf(T, Int32, Int32)方法重载用于搜索4个条目的范围, 从索引位置4开始, 向后扩展 (也就是说, 它会搜索位置4、3、2和1处的项); 此搜索将返回-1, 因为没有搜索实例此范围内的字符串。Finally, the LastIndexOf(T, Int32, Int32) method overload is used to search a range of 4 entries, beginning at index location 4 and extending backward (that is, it searches the items at locations 4, 3, 2, and 1); this search 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("\nLastIndexOf(\"Tyrannosaurus\"): {0}", 
        dinosaurs->LastIndexOf("Tyrannosaurus"));

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

    Console::WriteLine("\nLastIndexOf(\"Tyrannosaurus\", 4, 4): {0}", 
        dinosaurs->LastIndexOf("Tyrannosaurus", 4, 4));
}

/* This code example produces the following output:

Tyrannosaurus
Amargasaurus
Mamenchisaurus
Brachiosaurus
Deinonychus
Tyrannosaurus
Compsognathus

LastIndexOf("Tyrannosaurus"): 5

LastIndexOf("Tyrannosaurus", 3): 0

LastIndexOf("Tyrannosaurus", 4, 4): -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("\nLastIndexOf(\"Tyrannosaurus\"): {0}", 
            dinosaurs.LastIndexOf("Tyrannosaurus"));

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

        Console.WriteLine("\nLastIndexOf(\"Tyrannosaurus\", 4, 4): {0}", 
            dinosaurs.LastIndexOf("Tyrannosaurus", 4, 4));
    }
}

/* This code example produces the following output:

Tyrannosaurus
Amargasaurus
Mamenchisaurus
Brachiosaurus
Deinonychus
Tyrannosaurus
Compsognathus

LastIndexOf("Tyrannosaurus"): 5

LastIndexOf("Tyrannosaurus", 3): 0

LastIndexOf("Tyrannosaurus", 4, 4): -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 & _
            "LastIndexOf(""Tyrannosaurus""): {0}", _
            dinosaurs.LastIndexOf("Tyrannosaurus"))

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

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

    End Sub
End Class

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

注解

index index count如果List<T> 大于0,则搜索从开始,到从减号+1开始向后终止。countThe List<T> is searched backward starting at index and ending at index minus count plus 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.

另请参阅

适用于