在C#中,我试图通过验证乘客付款来验证是否有满载乘客的巴士:
bool busReadyToGo = true;
passengers.Any(p => p.paymentStatus == PaymentRegistryEnum.NotPaid ? busReadyToGo = false; return busReadyToGo; : continue; );
因此,这应检查所有乘客的付款状态,如果遇到没有付款的one
乘客,那么它就在那里停止并返回busReadytoGo = false。否则它继续迭代/过滤乘客,这意味着如果乘客没有付款,它将在以后返回真实。
不确定这是否是在Linq / lambda表达式中执行此操作的正确方法,因为我不断收到语法错误。
当它遇到在lambda表达式中返回true的第一个元素时,任何已经停止它的枚举。你只需要从Any获得结果
busReadyToGo = !passengers.Any(p => p.paymentStatus == PaymentRegistryEnum.NotPaid);
如果你看看Remarks section in docs,你可以阅读
一旦确定结果,就停止源的枚举。
方法.Any将返回bool值。表达式中不需要包含if-Statement。这应该做得很好:
bool busReadyToGo = !passengers.Any(p => p.paymentStatus == PaymentRegistryEnum.NotPaid)