Phương thức Array.LastIndexOf() trong C# được dùng để tìm kiếm một đối tượng chỉ định và trả về chỉ mục của lần xuất hiện cuối cùng trong toàn bộ mảng một chiều.
Cú pháp
public static int LastIndexOf(Array array, object value);
array: Mảng một chiều cần tìm kiếm.value: Đối tượng cần xác định vị trí trong mảng.
Trả về: Chỉ mục từ 0 của lần xuất hiện cuối cùng; trả về -1 nếu không tìm thấy.
Ví dụ 1: Tìm chỉ mục cuối cùng trong mảng chuỗi
using System;
public class Demo
{
public static void Main()
{
string[] strArr = { "John", "Tim", "Fedric", "Gary", "Harry", "Damien", "David", "Harry" };
// Sắp xếp mảng trước khi dùng BinarySearch
Array.Sort(strArr);
Console.WriteLine("Các phần tử mảng...");
foreach (string s in strArr)
{
Console.WriteLine(s);
}
// BinarySearch yêu cầu mảng đã sắp xếp
Console.Write("Chỉ mục của 'Gary' = " + Array.BinarySearch(strArr, "Gary"));
Console.Write("\nChỉ mục của 'Tom' = " + Array.BinarySearch(strArr, "Tom"));
// LastIndexOf không yêu cầu mảng đã sắp xếp
Console.Write("\nChỉ mục cuối cùng của 'Harry' = " + Array.LastIndexOf(strArr, "Harry"));
}
}
Kết quả
Các phần tử mảng... Damien David Fedric Gary Harry Harry John Tim Chỉ mục của 'Gary' = 3 Chỉ mục của 'Tom' = -9 Chỉ mục cuối cùng của 'Harry' = 5
Ví dụ 2: Tìm trong mảng số nguyên
using System;
public class Demo
{
public static void Main()
{
int[] intArr = { 5, 10, 15, 20, 15, 25, 30 };
Array.Sort(intArr);
Console.WriteLine("Các phần tử mảng...");
foreach (int i in intArr)
{
Console.WriteLine(i);
}
Console.Write("Chỉ mục của 25 (BinarySearch) = " + Array.BinarySearch(intArr, 20));
Console.Write("\nChỉ mục cuối cùng của 15 = " + Array.LastIndexOf(intArr, 15));
Console.Write("\nChỉ mục cuối cùng của 50 = " + Array.LastIndexOf(intArr, 50));
}
}
Kết quả
Các phần tử mảng... 5 10 15 15 20 25 30 Chỉ mục của 25 (BinarySearch) = 4 Chỉ mục cuối cùng của 15 = 3 Chỉ mục cuối cùng của 50 = -1
Các nạp chồng khác
LastIndexOf(Array, Object, Int32): Tìm từ chỉ mục chỉ định về phía đầu.LastIndexOf(Array, Object, Int32, Int32): Tìm trong phạm vi chỉ định.LastIndexOf<T>(T[], T): Phiên bản generic an toàn kiểu.
Lưu ý quan trọng
LastIndexOfthực hiện tìm kiếm tuyến tính (O(n)), không yêu cầu mảng đã sắp xếp.BinarySearchnhanh hơn (O(log n)) nhưng bắt buộc mảng đã được sắp xếp.- Trả về -1 nếu không tìm thấy (khác với ngoại lệ).