是一个集合空

时间:2011-04-01 10:42:29

标签: c#

var customers = new List<BECustomer>();
customers = GetCustomers();

但我不明白为什么customers[0] == null即使 customers.Any()==truecustomers.Count == 1customers==null是假的

如何检查空客户?

6 个答案:

答案 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