You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将检查租赁标识的foreach循环改写为LINQ查询?

将foreach循环改写为LINQ查询实现相同逻辑

原代码的核心逻辑是遍历订单集合,只要发现任意一条订单的租赁标识转成ListItem后包含"Y",就弹出警告、禁用按钮并终止流程。用LINQ的Any方法可以完美实现相同逻辑,代码更简洁:

List showPopup = bizDraftOrder.GetDraftOrders(LocalUser.employee_id);

// 用LINQ判断是否存在符合条件的订单
bool hasLeaseExceed = showPopup.Any(draftOrder => 
    new ListItem(draftOrder.HALO_LEASE_FLAG).ToString().Contains("Y"));

if (hasLeaseExceed)
{
    RadWindowManager1.RadAlert("You have exceeded for maximum vehicle count for lease.", 400, 150, "Alert", null, null);
    rbtSubmit.Enabled = false;
    rbtReset.Enabled = false;
    return;
}

说明:

  • Any方法会遍历集合,找到第一个符合条件的元素就立即停止遍历,和原循环中找到匹配项后return的逻辑完全一致,不会额外遍历多余元素,性能和原代码持平。
  • 保持了原逻辑中ListItem转换后再判断的步骤,确保行为和原代码完全一致。如果HALO_LEASE_FLAG本身就是字符串,且ListItem.ToString()的结果等同于该字符串,也可以直接判断draftOrder.HALO_LEASE_FLAG.Contains("Y"),这样能减少不必要的对象创建,提升一点效率。

内容的提问来源于stack exchange,提问作者Sravya Damodar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 05:15:00