Giới thiệu
Phương thức tĩnh Array.Exists<T>(T[] array, Predicate<T> match) kiểm tra xem mảng có chứa ít nhất một phần tử thỏa mãn điều kiện (predicate) hay không. Trả về true nếu tìm thấy, ngược lại false.
Ví dụ 1 - Kiểm tra tiền tố chuỗi
using System;
public class Demo
{
public static void Main()
{
string[] products = { "Electronics", "Accessories", "Clothing", "Toys", "Clothing", "Furniture" };
Console.WriteLine("Danh sách sản phẩm...");
foreach (string s in products)
{
Console.WriteLine(s);
}
Console.WriteLine("\nCó sản phẩm nào bắt đầu bằng 'C'? = {0}",
Array.Exists(products, ele => ele.StartsWith("C")));
Console.WriteLine("Có sản phẩm nào bắt đầu bằng 'D'? = {0}",
Array.Exists(products, ele => ele.StartsWith("D")));
Console.WriteLine("Có sản phẩm nào bắt đầu bằng 'T'? = {0}",
Array.Exists(products, ele => ele.StartsWith("T")));
Console.WriteLine("Có sản phẩm nào bắt đầu bằng 'E'? = {0}",
Array.Exists(products, ele => ele.StartsWith("E")));
}
}
Kết quả
Danh sách sản phẩm... Electronics Accessories Clothing Toys Clothing Furniture Có sản phẩm nào bắt đầu bằng 'C'? = True Có sản phẩm nào bắt đầu bằng 'D'? = False Có sản phẩm nào bắt đầu bằng 'T'? = True Có sản phẩm nào bắt đầu bằng 'E'? = True
Ví dụ 2 - Kiểm tra giá trị chính xác và tiền tố
using System;
public class Demo
{
public static void Main()
{
string[] products = { "Electronics", "Accessories", "Clothing", "Toys", "Clothing", "Furniture" };
Console.WriteLine("Danh sách sản phẩm...");
foreach (string s in products)
{
Console.WriteLine(s);
}
Console.WriteLine("Sản phẩm 'Accessories' có trong mảng? = {0}",
Array.Exists(products, ele => ele == "Accessories"));
Console.WriteLine("Sản phẩm 'Stationery' có trong mảng? = {0}",
Array.Exists(products, ele => ele == "Stationery"));
Console.WriteLine("\nCó sản phẩm nào bắt đầu bằng 'C'? = {0}",
Array.Exists(products, ele => ele.StartsWith("C")));
Console.WriteLine("Có sản phẩm nào bắt đầu bằng 'D'? = {0}",
Array.Exists(products, ele => ele.StartsWith("D")));
Console.WriteLine("Có sản phẩm nào bắt đầu bằng 'T'? = {0}",
Array.Exists(products, ele => ele.StartsWith("T")));
Console.WriteLine("Có sản phẩm nào bắt đầu bằng 'E'? = {0}",
Array.Exists(products, ele => ele.StartsWith("E")));
}
}
Kết quả
Danh sách sản phẩm... Electronics Accessories Clothing Toys Clothing Furniture Sản phẩm 'Accessories' có trong mảng? = True Sản phẩm 'Stationery' có trong mảng? = False Có sản phẩm nào bắt đầu bằng 'C'? = True Có sản phẩm nào bắt đầu bằng 'D'? = False Có sản phẩm nào bắt đầu bằng 'T'? = True Có sản phẩm nào bắt đầu bằng 'E'? = True
Các phương thức Array hữu ích khác
Array.Find<T>(): Trả về phần tử đầu tiên thỏa mãn điều kiện.Array.FindAll<T>(): Trả về mảng con chứa tất cả phần tử thỏa mãn.Array.FindIndex<T>(): Trả về chỉ mục phần tử đầu tiên thỏa mãn.Array.FindLast<T>()/FindLastIndex<T>(): Tìm từ cuối mảng.Array.TrueForAll<T>(): Kiểm tra tất cả phần tử thỏa mãn điều kiện.
Lưu ý quan trọng
Array.Existsdừng lại ngay khi tìm thấy phần tử đầu tiên thỏa mãn (short-circuit).- Predicate là delegate:
Func<T, bool>hoặc lambda expression. - Độ phức tạp O(n) vì duyệt tuyến tính.
- Hoạt động với mọi kiểu mảng (primitive, object, struct).