2

所以我有一个订单列表......如果列表为空,我想跳到“其他”。

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

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

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

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

3 回答 3

11

您要检查列表中是否有多个0项目

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

列表本身不算作一个项目。

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

于 2013-07-18T14:31:19.977 回答
4

你需要改变你的状况

orders.Count() == 0

orders.Count() > 0

因为目前它检查列表是否不包含记录。

你也可以试试Enumerable.Any

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

了解为什么使用 Any 代替 Count() 更好

于 2013-07-18T14:33:46.077 回答
3

> 0我假设您想改为检查

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

或者orders.Any()

于 2013-07-18T14:32:08.583 回答