8
LINQ: ไม่ vs ไม่ได้ทั้งหมด
บ่อยครั้งที่ฉันต้องการตรวจสอบว่าค่าที่มีให้ตรงกับหนึ่งในรายการ (เช่นเมื่อตรวจสอบ): if (!acceptedValues.Any(v => v == someValue)) { // exception logic } เมื่อเร็ว ๆ นี้ฉันสังเกตเห็น ReSharper ขอให้ฉันทำแบบสอบถามเหล่านี้ให้ง่ายขึ้น: if (acceptedValues.All(v => v != someValue)) { // exception logic } เห็นได้ชัดว่ามันเหมือนกันในเชิงตรรกะบางทีอาจจะอ่านได้มากกว่าเล็กน้อย (ถ้าคุณทำคณิตศาสตร์มามาก) คำถามของฉันคือ: สิ่งนี้ส่งผลให้เกิดผลงานหรือไม่? มันให้ความรู้สึกเหมือนว่ามันควรจะ (เช่น.Any()ฟังดูเหมือนมันจะลัดวงจรในขณะที่.All()ดูเหมือนว่ามันจะไม่ได้) แต่ฉันไม่มีอะไรจะพิสูจน์เรื่องนี้ ไม่มีใครมีความรู้ในเชิงลึกเกี่ยวกับคำถามที่ว่าจะแก้ไขเหมือนเดิมหรือไม่หรือ ReSharper ทำให้ฉันหลงทาง?
272
c#
.net
performance
linq
resharper