Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

โปรแกรม C# ตรวจสอบว่าค่าอยู่ในอาร์เรย์หรือไม่


ภาพรวม

เมธอด Array.Exists<T>() ตรวจสอบว่ามีองค์ประกอบในอาร์เรย์ตรงตามเงื่อนไข (predicate) หรือไม่ คืนค่า bool

รูปแบบการใช้งาน

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

ตัวอย่างโค้ดเต็ม

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
    }
}

ผลลัพธ์

False
True

วิธีอื่นๆ

  • Array.IndexOf(arr, value) >= 0 - สำหรับค่าที่แน่นอน (ไม่ใช่ predicate)
  • arr.Contains(value) - ต้อง using System.Linq;
  • arr.Any(x => x == value) - LINQ
  • HashSet<T> - O(1) สำหรับค้นหาบ่อยครั้ง