所以我有一个订单列表......如果列表为空,我想跳转到'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
}
答案 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())
答案 2 :(得分:3)
我假设您要检查> 0
而不是
if (orders != null && orders.Count() > 0 )
{
//order exists
}
或orders.Any()