ฉันได้คุยเรื่องนี้กับเพื่อนร่วมงานและเราไม่สามารถเข้าใจได้ว่าการใช้งานนั้นมีประโยชน์.Any
สำหรับอะไรList<>
ใน C #
คุณสามารถตรวจสอบความถูกต้องขององค์ประกอบในอาร์เรย์เช่นคำสั่งต่อไปนี้:
if (MyList.Any()){ ...} //Returns true or false
ซึ่งเป็นสิ่งเดียวกัน
if (MyList.Count() != 0) { ... }
และเป็นเรื่องธรรมดามากขึ้นอ่านได้และชัดเจนเกี่ยวกับเจตนาของif
ข้อความ
ในท้ายที่สุดเราติดอยู่กับความคิดนี้:
.Any()
สามารถใช้งานได้เช่นกัน แต่ไม่ชัดเจนเกี่ยวกับเจตนาของโปรแกรมเมอร์และในกรณีนี้ไม่ควรใช้
แต่เรารู้สึกว่ามันไม่ถูกต้อง เราต้องคิดถึงบางสิ่ง
พวกเราคือ
Any()
ชัดเจนน้อยกว่า: Any()
ชัดเจนกว่าสำหรับฉันโดยเฉพาะกับสภาพแลมบ์ดา การแปลรหัสเป็นภาษาอังกฤษในหัวของฉันif(MyList.Count(o => o > 10) > 0)
กลายเป็น"จำนวนรายการมากกว่า 10 มากกว่า 0 หรือไม่" ในขณะที่if(MyList.Any(o => o > 10))
กลายเป็น"มีรายการใดมากกว่า 10?"
Any
Exists
ชื่อ Linq น่าจะเป็นแรงบันดาลใจมากกว่าโดย Haskell และ Python ซึ่งมีฟังก์ชั่นใด ๆ / ทั้งหมด