Arrays 从数组返回值

Arrays 从数组返回值,arrays,asp.net-mvc,linq,Arrays,Asp.net Mvc,Linq,我有库存表,这里我保存了数组中所有低于10或与10相同的ProductId public int[] OrderNow() { return context.Inventory.Where(u => u.Quantity <= 10).Select(i =>i.ProductId) .ToArray(); } 编辑了一个类似的问题 public int[]

我有库存表,这里我保存了数组中所有低于10或与10相同的ProductId

public int[] OrderNow()
{
    return context.Inventory.Where(u => u.Quantity <= 10).Select(i =>i.ProductId)
                                                         .ToArray();
}
编辑了一个类似的问题

public int[] OrderNow()
{
    return context.Inventory.Where(u => u.Quantity <= 10).Select(i =>i.DepartmentId)
                                                         .ToArray();
}

因为你回到了循环中。因此,当循环对
prId
数组中的第一个项执行时,它只得到该产品(基本上是一个只有该产品的集合),并且由于您有
return
语句,它将被返回(退出该代码块)。您的循环迭代将不会对数组中的其余项执行

您应该使用
Contains
方法。这允许您查询ProductId与数组中的项匹配的产品(从OrderNow方法获得的ProductId)


return
中断方法。
return
退出函数。您已经返回了
string[]
@DanielA.White谢谢您的回复,我应该写些什么呢?最好的猜测是您想要返回context.Products.Where(u=>prId.Contains(u.ProductId))。选择(p=>p.ProductName.ToArray()是。刚刚修好了。Thanks@Shyju当我想像你回答的那样做时,我会犯错误。这次我从OrderNow()收集了数组中的departmentId,然后在我的Asp.NetUsers中我有departmentId和电子邮件。我想收集阵列中具有相同部门ID的用户电子邮件。如果你在回答问题时将产品更改为用户,这一切都是一样的。对于“Contains”的定义,我得到错误int[]不包含,并且最佳扩展方法重载“Queryable.Contains…”使用System.Linq添加
到那个类文件。@Shyju我已经在底部编辑了我的原始问题try
。其中(u=>DepartmentId.Any(u.DepartmentId))
public int[] OrderNow()
{
    return context.Inventory.Where(u => u.Quantity <= 10).Select(i =>i.DepartmentId)
                                                         .ToArray();
}
public string[] UserEmails()
{
   var departmentIds= OrderNow();   // Gets the array of product ids

   return context.Users
         .Where(u => u.IsInventoryAdmin == true)
                 .Where(u => departmentIds.Contains(u.DepartmentId)) // Here failing
                 .Select(e => e.Email)
                 .ToArray();    
}
public string[] ProductName()
{
   var productIds= OrderNow();   // Gets the array of product ids

   return context.Products
                 .Where(u => productIds.Contains(u.ProductId))
                 .Select(p => p.ProductName)
                 .ToArray();    
}