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

เมธอด Any ใน C# LINQ


ภาพรวม

เมธอด Any() ใน LINQ ตรวจสอบว่า มีองค์ประกอบอย่างน้อยหนึ่งรายการ ที่ตรงตามเงื่อนไขหรือไม่ คืนค่า bool

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

int[] arr = {5, 7, 10, 12, 15, 18, 20};
bool hasGreaterThan10 = arr.AsQueryable().Any(val => val > 10); // true

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

using System;
using System.Linq;

class Demo
{
    static void Main()
    {
        int[] arr = {5, 7, 10, 12, 15, 18, 20};
        bool res = arr.AsQueryable().Any(val => val > 10);
        Console.WriteLine(res); // True
    }
}

ผลลัพธ์

True

Any() แบบไม่มีเงื่อนไข

bool hasElements = arr.AsQueryable().Any(); // true หากมีสมาชิกอย่างน้อย 1 ตัว

ความแตกต่าง Any vs All

เมธอดคืน true เมื่อคืน false เมื่อ
Any(predicate)มีอย่างน้อย 1 ตัวตรงเงื่อนไขไม่มีตัวไหนตรง หรือลำดับว่าง
All(predicate)ทุกตัวตรงเงื่อนไข (หรือลำดับว่าง)มีอย่างน้อย 1 ตัวไม่ตรง

หมายเหตุในตัวอย่างต้นฉบับ

โค้ดต้นฉบับมีข้อผิดพลาด: ใช้ All(val => val > 5) แต่คอมเมนต์กล่าวถึง "greater than 10" - ได้แก้ไขในตัวอย่างข้างต้นแล้ว