返回列表,如果为空AND count == 0.跳转到else

时间:2013-07-18 14:30:03

标签: c# asp.net-mvc

所以我有一个订单列表......如果列表为空,我想跳转到'else'。

但是因为它的列表(即使它是空的)还有一个实例吗?对?无论如何,如果没有订单,它仍会进入if语句,所以我尝试添加.count == 0 ...

但它仍然会进入if语句......如果订单中没有实际记录,我还需要说什么呢?感谢任何回复

IEnumerable<OrderRecord> orders = _orderService.GetOrdersByCustomer(id, OrderStatus.Completed).ToArray();

if (orders != null && orders.Count() == 0 )
{
  //order exists
}
else
{
    //no order
}

3 个答案:

答案 0 :(得分:11)

您想检查列表中是否有超过0个项目

if (orders != null && orders.Count() > 0 )
{
    //order exists
}
else
{
    //no order
}

列表本身不算作项目。

或者,正如评论中Richard Ev所建议的那样,您可以使用orders.Any,如果列表中有元素,则会返回true。

答案 1 :(得分:4)

你需要改变你的状况

orders.Count() == 0

orders.Count() > 0

因为目前检查列表是否包含没有记录。

你也可以试试Enumerable.Any

if(orders != null && order.Any())

请参阅why its better to use Any in place of Count()

答案 2 :(得分:3)

我假设您要检查> 0而不是

if (orders != null && orders.Count() > 0 )
{
  //order exists
}

orders.Any()