Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Tìm chỉ số từ trong mảng chuỗi C#


Giới thiệu

Phương thức tĩnh Array.IndexOf(Array, object) tìm chỉ số đầu tiên của giá trị trong mảng 1 chiều. Trả về -1 nếu không tìm thấy.

Ví dụ cơ bản

string[] str = { "Cat", "Mat", "Rat" };
int index = Array.IndexOf(str, "Mat"); // 1

Ví dụ hoàn chỉnh

using System;

public class Demo
{
    public static void Main()
    {
        string[] str = { "Cat", "Mat", "Rat" };
        Console.WriteLine("Our Array =");
        foreach (string res in str) Console.WriteLine(res);

        int findIndex = Array.IndexOf(str, "Mat");
        Console.Write("Element Mat found at index: ");
        Console.WriteLine(findIndex);
    }
}

Kết quả

Our Array =
Cat
Mat
Rat
Element Mat found at index: 1

Các nạp chồng IndexOf

  • IndexOf(Array, value) - toàn mảng.
  • IndexOf(Array, value, startIndex) - từ startIndex đến cuối.
  • IndexOf(Array, value, startIndex, count) - trong đoạn [startIndex, startIndex+count).
  • Generic: IndexOf<T>(T[], T, ...) - type-safe.

So sánh với List.IndexOf

  • List<T>.IndexOf(T) - instance method, type-safe, O(n).
  • Array.IndexOf - static, làm việc với Array, boxing cho value type.

Lưu ý

  • So sánh dùng EqualityComparer<T>.Default.
  • Với string, so sánh ordinal (case-sensitive) mặc định.
  • Để tìm case-insensitive: Array.FindIndex(arr, s => s.Equals("mat", StringComparison.OrdinalIgnoreCase)).