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

Kiểm tra giá trị tồn tại trong mảng C#


Giới thiệu

Phương thức tĩnh Array.Exists<T>(T[] array, Predicate<T> match) kiểm tra xem có ít nhất một phần tử trong mảng thỏa mãn điều kiện predicate hay không. Trả về true/false.

Ví dụ cơ bản

string[] strArray = { "keyboard", "screen", "mouse", "charger" };
bool hasKeyboard = Array.Exists(strArray, ele => ele == "keyboard"); // true
bool hasHarddisk = Array.Exists(strArray, ele => ele == "harddisk"); // false

Ví dụ hoàn chỉnh

using System;

public class Demo
{
    public static void Main()
    {
        string[] strArray = { "keyboard", "screen", "mouse", "charger" };
        bool res1 = Array.Exists(strArray, ele => ele == "harddisk");
        Console.WriteLine(res1); // False
        bool res2 = Array.Exists(strArray, ele => ele == "keyboard");
        Console.WriteLine(res2); // True
    }
}

Kết quả

False
True

So sánh với LINQ Any()

Đặc điểmArray.ExistsLINQ Any()
NamespaceSystemSystem.Linq
Đối tượngChỉ mảng T[]Mọi IEnumerable<T>
Cú phápPredicate delegateLambda expression
Hiệu suấtHơi nhanhTương đương

Ví dụ Any()

using System.Linq;
bool hasKeyboard = strArray.Any(e => e == "keyboard");
bool hasLongName = strArray.Any(e => e.Length > 10);

Lưu ý

  • Short-circuit: dừng ngay khi tìm thấy match đầu tiên.
  • Ném ArgumentNullException nếu array hoặc predicate null.
  • Cho mảng rỗng: luôn trả về false.