asp.net 需要重写代码foreach到LINQ查询

vohkndzv  于 2023-03-31  发布在  .NET
关注(0)|答案(1)|浏览(123)

如何将下面的Foreach改为LINQ查询?列表showPopup = bizDraftOrder.GetDraftOrders(LocalUser.employee_id);

foreach (var D in showPopup)
                    {
                        item1 = new ListItem(D.HALO_LEASE_FLAG);
                        if (item1.ToString().Contains("Y"))
                        {
                            RadWindowManager1.RadAlert("You have exceeded for maximum vehicle count for        lease.", 400, 150, "Alert", null, null);
                            rbtSubmit.Enabled = false;
                            rbtReset.Enabled = false;
                            return;
                        }

                    }

请告诉我这个怎么重写

11dmarpk

11dmarpk1#

因为我没有你所有的代码来检查解决方案是否有效。但理论上这应该是你正在寻找的LINQ查询。

var item1 = showPopup.Select(D => new ListItem(D.HALO_LEASE_FLAG))
                     .FirstOrDefault(i => i.ToString()
                     .Contains("Y"));

if (item1 != null)
{
    RadWindowManager1.RadAlert("You have exceeded for maximum vehicle count for lease.", 400, 150, "Alert", null, null);
    rbtSubmit.Enabled = false;
    rbtReset.Enabled = false;
}
  1. "Select"在“showPopup”上执行,以创建仅包含属性“HALO_LEASE_FLAG”的新对象列表。
    1.对新列表执行"FirstOrDefault"以查找与条件匹配的第一项。
    1.条件是元素的ToString()方法包含字符串(更精确地说是char)“Y”。
    1.如果找到这样的元素,它是assigned到变量“item1”,otherwise it remains null
    1.然后检查“item1”是否不为null,如果不为null,将执行代码
    这意味着,如果item1为NULL,则未找到任何内容,这是由于FirstOrDefault,它将提供第一个项目,如果未找到任何内容,则提供"Default",因此NULL

相关问题