var customers = new List<BECustomer>();
customers = GetCustomers();
但我不明白为什么customers[0] == null
即使
customers.Any()==true
或
customers.Count == 1
或
customers==null
是假的
如何检查空客户?
答案 0 :(得分:2)
这是一个区别。
您列表不为null,因为您使用新的List()实例化它,然后分配getCustomers()。也许这会返回null。
但是列表中的元素可以为null。例如:
customers[0] = null
然后,您已将数组中的第一个元素设置为null。
总结一下:
if (customers == null)
检查customerzs变量是否指向null
if (customers[0] == null)
检查数组中的第一个元素是否为空
答案 1 :(得分:2)
尝试以下方法:
customers.Any(c => c == null)
答案 2 :(得分:2)
您可以使用customers.Contains(null)
进行检查。查看更多here。
答案 3 :(得分:2)
如果要检查集合中的任何项是否为null,则可以使用此扩展方法。
public static bool AnyNull<T>(this IEnumerable<T> items)
where T : class
{
return items.Any(item => item == null);
}
用法:
var customers = GetCustomers();
bool anyCustomerNull = customers.AnyNull();
答案 4 :(得分:1)
new List<BECustomer().Add(null)
会产生同样的效果。非空,非空列表包含null
元素./
答案 5 :(得分:0)
因为有一个客户,所以设置为null
。